自己做模板网站,wordpress 小工具使用方法,自己建一个网站怎么赚钱,销售系统管理软件免费什么是Docker
Docker是一个开源的应用容器引擎#xff0c;它可以让开发者将应用程序及其依赖项打包到一个可移植的镜像中#xff0c;并发布到任何流行的操作系统上。Docker使用沙箱机制来隔离容器#xff0c;使其相互独立#xff0c;并简化了应用程序的部署和管理。沙箱机…什么是Docker
Docker是一个开源的应用容器引擎它可以让开发者将应用程序及其依赖项打包到一个可移植的镜像中并发布到任何流行的操作系统上。Docker使用沙箱机制来隔离容器使其相互独立并简化了应用程序的部署和管理。沙箱机制限制应用程序对系统资源访问的机制通过重定向技术将程序生成和修改的文件定向到自身文件夹中并加载自身的驱动来保护底层数据防止程序随意操作系统资源造成数据损坏或泄露。系统资源被操作系统使用或管理的硬件和软件资源。这些资源包括CPU、内存、磁盘、网络连接、输入设备、输出设备、电源管理等。
Docker的特点 轻量级Docker容器与传统虚拟机相比更加轻量级。它共享操作系统内核并且只包含运行应用程序所需的最小化组件因此启动速度更快占用资源更少。 可移植性Docker容器可以在不同的环境中运行无论是开发环境、测试环境还是生产环境。容器化应用程序可以在不同的主机之间进行简单、可靠的迁移。 高效性由于共享操作系统内核和资源隔离的特性Docker容器可以更高效地利用服务器资源。多个容器可以在同一台主机上同时运行互相之间不会产生干扰。 可伸缩性Docker容器可以根据应用程序的需求进行快速水平扩展或缩减。通过使用容器编排工具如Docker Compose或Kubernetes可以实现自动化的容器管理和扩展。 简化部署和管理Docker提供了一致的部署方式将应用程序及其依赖项打包成一个镜像并通过镜像进行部署。这使得应用程序的部署和管理变得简单和可靠。 生态系统支持Docker拥有庞大的生态系统社区提供了大量的公开可用的镜像和工具可以方便地构建、分享和管理容器化应用程序。
Docker主要组件
Docker ClientDocker客户端Docker客户端是命令行界面用于与Docker守护进程进行交互。通过Docker客户端用户可以执行各种Docker命令来管理Docker守护进程和容器。Docker ServerDocker服务器Docker服务器是运行Docker守护进程的计算机它负责管理Docker容器。Docker服务器可以是一台物理机或虚拟机只要在其上安装了Docker守护进程就可以作为Docker服务器使用。Docker DaemonDocker守护进程Docker守护进程是后台运行的服务负责管理Docker容器。Docker ImagesDocker镜像Docker镜像是用于创建Docker容器的模板。它包含了一个应用程序及其依赖项以及一个完整的运行环境。Docker镜像可以通过Dockerfile构建也可以从公共仓库中下载。Docker RegistryDocker注册中心Docker注册中心是存储和管理Docker镜像的中央仓库Docker Hub。用户可以从公共注册中心中下载镜像也可以将自己的镜像上传到私有注册中心。Docker ContainerDocker容器Docker容器是Docker镜像的运行实例。每个容器都是独立的运行环境包含了一个应用程序及其依赖项和运行环境。用户可以使用Docker CLI命令行界面或API来启动、停止、删除和管理容器。
Docker工作原理
Docker的工作原理基于客户端-服务器Docker引擎结构其中Docker的守护进程运行在宿主主机上Docker服务器客户端容器通过Socket向Docker引擎发送相应的指令Docker服务器就会执行相应的命令。Docker利用Linux中的核心分离机制例如Cgroups以及Linux的核心Namespace名字空间来创建独立的容器。一句话概括起来Docker就是利用Namespace做资源隔离用Cgroup做资源限制利用Union FS做容器文件系统的轻量级虚拟化技术。当Docker引擎在本地查找镜像时如果本地没有找到镜像则会根据Docker引擎配置的仓库地址远程去查找镜像。Docker容器的本质还是一个直接运行在宿主机上面的特殊进程看到的文件系统是隔离后的但是操作系统内核是共享宿主机OS所以说Docker是轻量级的虚拟化技术。
Docker的安装
第一步添加Docker的yum库 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 #添加yum库 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo #配置软件源 第二步安装Docker sudo yum -y install docker-ce 第三步启动Docker sudo systemctl start docker 第四步镜像加速 执行vi /etc/docker/daemon.json 进入文件添加以下内容保存并退出 { “registry-mirrors”: [“https://5pfmrxk8.mirror.aliyuncs.com”] } 第五步重启Docker systemctl start docker 如果想要Docker开机自启使用systemctl enable docker
Docker相关命令
【systemctl命令是系统服务管理器指令它是 service和chkconfig两个命令组合sudo是以管理员身份运行】
启动dockersystemctl start docker停止dockersystemctl stop docker重启dockersystemctl restart docker查看docker状态systemctl status docker开机启动systemctl enable docker查看docker概要信息docker info查看docker帮助文档docker --help重新加载配置sudo systemctl daemon-reload
Docker镜像相关命令
查看本地镜像docker images 【镜像都存储在/var/lib/docker下】删除指定镜像docker rmi 镜像名/镜像id:版本号删除所有镜像
docker rmi docker images -q 搜索远程镜像docker search 镜像名拉取镜像到本地docker pull 镜像名:版本号推送本地镜像到远程docker push 镜像名:版本号
Docker容器相关命令
查看所有容器docker ps -a查看所有容器iddocker ps -a -q查看正在运行中的容器docker ps查看最近一次运行的容器docker ps -1查看已经停止运行的容器docker ps -f statusexited创建并运行一个容器docker run 交互式docker run -i -t --name容器名字 -p外端口:内端口 镜像名字:版本号 /bin/bash 或者/bin/sh 退出容器exit或者ctrl p q后台式docker run -i -d --name容器名字 -p外端口:内端口 镜像名字:版本号 退出容器exiti运行容器-t交互式-d后台式–name 容器名-v目录映射-p端口映射 删除容器docker rm 容器名/容器id删除所有容器
docker rm docker ps -a -q停止容器docker stop 容器名/容器id停止容器 docker kill 容器名/容器id停止所有容器
docker kill docker ps -a -q把停止的容器启动起来docker start 容器名/容器id查看容器的运行日志docker logs 容器名/容器id 查看容器的配置 docker inspect 容器名/容器id进入容器里面docker exec exit 退出容器拷贝文件docker cp–privilegedtrue 来解决挂载的目录没有权限的问题容器运行的数据docker inspect 容器名/容器id查看容器ip(容器每次启动都会变化)docker inspect --format‘{{.NetworkSettings:IPAddress}}’ 容器名/容器id
常用Docker容器的安装
Mysql安装
拉取镜像docker pull mysql:5.7查看镜像docker images 创建映射目录【-p是创建多级目录】目录映射是为了修改文件时直接修改映射目录而不用进入容器中修改 mkdir -p /usr/local/docker_data/mysql/data mkdir -p /usr/local/docker_data/mysql/conf/conf.d mkdir -p /usr/local/docker_data/mysql/conf/mysql.conf.d mkdir -p /usr/local/docker_data/mysql/logs 运行容器 docker run --privilegedtrue --name mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD123456 -d -v /usr/local/docker_data/mysql/data:/var/lib/mysql -v /usr/local/docker_data/mysql/conf:/etc/mysql/ -v /usr/local/docker_data/mysql/logs:/var/log/mysql mysql:5.7 --privilegedtrue #使容器拥有root权限mysql5.7是容器名mysql:5.7是刚刚拉取到本地的镜像-p是端口映射前面是系统端口后面的是容器的端口-e是环境MYSQL_ROOT_PASSWORD是mysql中root用户的密码-v是目录映射前面是系统的目录后面是容器内的目录测试【虚拟机的ip用ifconfig命令得到ens33那一个】
JDK安装1.8
拉取镜像 docker pull openjdk:8创建容器docker run -it --name jdk1.8 -d openjdk:8查看容器docker ps - a 进入jdk容器查看jdk是否安装正确docker exec -it jdk1.8 /bin/bash,执行java -version。
Redis安装
拉取镜像docker pull redis:5创建容器docker run -id --name redis5 -p 6379:6379 --restartalways --memory400m redis:5 --requirepass123456 –restartalways 无论容器以何种方式退出Docker都会自动重启该容器 –memory400m 容器最大内存为400m –requirepass redis的密码 查看是否成功 docker ps -a 尝试连接 可以添加key 进入容器中查看这个key是否存在 docker exec -it redis5 /bin/bash 进入容器,redis-cli 进入客户端auth 123456 身份验证keys * 查看所有key