现阶段的软件技术水平已经真正的进入到了云计算时代,我们的应用现在也正在逐步的部署到云端,部署到云端的服务需要相互隔离,让每个服务都运行在独立的容器中,而 Docker 正是当下最主流的容器化技术。
Docker 镜像可以看成是磁盘上特殊的文件系统(https://hub.docker.com/),镜像打包了应用的运行环境以及应用程序,是静态的。可以通过 Docker 启动这个镜像,进而将镜像中的程序在一个容器中启动运行起来。在 Docker 镜像中,操作系统是高度精简的,镜像中的操作系统还不包含内核,容器都是共享所在的宿主机的内核。所以有时会说容器仅包含必要的操作系统(通常只有操作系统文件和文件系统对象),容器中查看到的 Linux 内核版本与宿主机一致。假如现在理解镜像有些抽象,可以暂时先将其理解为一个安装程序。
Docker容器可以将其理解为一个运行镜像的载体,镜像(Image)和容器(Container)的关系,就像是光盘和光驱。容器基于镜像创建、启动,然后运行镜像的中的文件。容器是轻量级的,它不需要管理程序的额外负担,而是直接在主机的内核中运行。我们常常说使用镜像打包应用程序,使用 Docker 发布、部署应用程序。当你的应用成功在 Docker 上运行时,这个应用就是容器化应用。我们还可以将通过 Docker 启动的容器看成是操作系统中的一个进程。
Docker 是一种Client/Server架构的应用程序,Docker 客户端与Docker 守护进程进行对话,该守护进程完成了构建,运行和分发Docker容器的繁重工作。Docker客户端和守护程序可以 在同一系统上运行,或者您可以将Docker客户端连接到远程Docker守护程序。如图所示(参考docker 官网https://docs.docker.com/get-started/overview/)。
docker pull 执行过程:
1)客户端将指令发送给docker daemon
2)docker daemon 先检查本地images中有没有相关的镜像
3)如果本地没有相关的镜像,则向镜像服务器请求,将远程镜像下载到本地
docker run 执行过程:
准备工作
第一步:准备CentOS,本次以CentOS7为例进行安装。
第二步:基于vmvare打开CentOS
第三步:克隆CentOS(选择链接克隆-更省空间),命名为CentOS7964-docker(名字随意)
开启虚拟机系统
第一步:启动虚拟机,默认账号密码为root/root
第二步:在系统中右键,打开终端,通过ifconfig指令检查网络,
[root@centos7964 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.126.129 netmask 255.255.255.0 broadcast 192.168.126.255
inet6 fe80::20c:29ff:fed5:bd15 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:d5:bd:15 txqueuelen 1000 (Ethernet)
RX packets 160 bytes 19289 (18.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 187 bytes 17007 (16.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:c3:96:eb txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
第三步:通过MobaXterm工具链接虚拟机系统
在这里插入图片描述
按如下步骤自己下载,然后将资源放到一个目录安装
第一步:下载docker离线包
https://download.docker.com/linux/static/stable/x86_64/docker-20.10.6.tgz
也可以从https://download.docker.com/linux/static/stable/网址下载指定版本
第二步:下载离线安装工具
https://github.com/Jrohy/docker-install/
将下载好的这个工具解压。
第三步:将下载好的资源放在一个目录,例如:
第四步:在linux环境下,创建/root/setup/docker目录,然后拷贝下载好的资源到此目录(可通过MobaXterm工具直接上传到linux目录)
第五步:执行安装操作
# 进入/root/setup/docker 文件夹
cd /root/setup/docker
# 为 install.sh添加执行权限
chmod +x install.sh
# 安装
./install.sh -f docker-20.10.6.tgz
安装成功后,会出现如下信息:
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
docker 20.10.6 install success!
第六步:安装成功以后,检查安装状态
docker info
查看docker是否启动了,是否是运行状态.
systemctl status docker
systemctl stop docker
查看防火墙状态
systemctl status firewalld
关闭防火墙
systemctl disable firewalld
systemctl start docker
systemctl enable docker
systemctl disable docker
systemctl restart docker
docker info
由于国内网络问题,需要配置加速器来加速。修改配置文件 /etc/docker/daemon.json
下面命令直接生成文件 daemon.json
cat <<EOF > /etc/docker/daemon.json
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"http://hub-mirror.c.163.com"
],
"max-concurrent-downloads": 10,
"log-driver": "json-file",
"log-level": "warn",
"log-opts": {
"max-size": "10m",
"max-file": "3"
},
"data-root": "/var/lib/docker"
}
EOF
注意:在执行如上指令时,保证你的登录用户为root管理员用户,并且设置好以后重启docker服务.