Docker 介绍和安装(一)
阅读原文时间:2022年05月16日阅读:1
#  下载阿里云的 Centos7 的docker.repo 

# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新并安装Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker服务
sudo service docker start

# 注意:
# 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,您可以通过以下方式开启。同理可以开启各种测试版本等。
# vim /etc/yum.repos.d/docker-ee.repo
#   将[docker-ce-test]下方的enabled=0修改为enabled=1
#
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
#   Loading mirror speeds from cached hostfile
#   Loaded plugins: branch, fastestmirror, langpacks
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            docker-ce-stable
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            @docker-ce-stable
#   docker-ce.x86_64            17.03.0.ce-1.el7.centos            docker-ce-stable
#   Available Packages
# Step2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.0.ce.1-1.el7.centos)
# sudo yum -y install docker-ce-[VERSION]

# 验证版本:
[root@node-2 ~]# docker version
Client: Docker Engine - Community
 Version:           19.03.12
 API version:       1.40
 Go version:        go1.13.10
 Git commit:        48a66213fe
 Built:             Mon Jun 22 15:46:54 2020
 OS/Arch:           linux/amd64
 Experimental:      false
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

引用: https://developer.aliyun.com/mirror/docker-ce?spm=a2c6h.13651102.0.0.3e221b11OFih08

不同的引擎存储效果不一样, 还是需要谨慎. 可以有很多方案的

# 查看引擎存储格式(官方推荐overlay2 格式):
docker info
.......
Storage Driver: overlay2  # 19.0+ 默认这个格式

Storage Driver: devicemapper  # 老版本都是这个格式,一开始就是100G 超过以后就会出现IO error. 不推荐使用

# 如果docker 数据目录是一块单独的磁盘分区而且是XFS格式的,那么需要在格式化的时候加上参数: -n ftype=1 , 否则后期再启动容器的时候会报错不支持d -type

引用: https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors?accounttraceid=60b8bc68b9cf4a29a250a87a4a721f4cmmsa

##
国内从 DockerHub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。Docker 官方和国内很多云服务商都提供了国内加速器服务,例如:

网易:https://hub-mirror.c.163.com/
阿里云:https://<你的ID>.mirror.aliyuncs.com
七牛云加速器:https://reg-mirror.qiniu.com

当配置某一个加速器地址之后,若发现拉取不到镜像,请切换到另一个加速器地址。国内各大云服务商均提供了 Docker 镜像加速服务,建议根据运行 Docker 的云平台选择对应的镜像加速服务。

阿里云镜像获取地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,登陆后,左侧菜单选中镜像加速器就可以看到你的专属地址了:

1. 安装/升级Docker客户端
推荐安装1.10.0以上版本的Docker客户端,参考文档 docker-ce

2. 配置镜像加速器
针对Docker客户端版本大于 1.10.0 的用户

您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://i04elxtl.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker


[root@node-2 overlay2]# ps -ef | grep docker
root      11951      1  0 16:34 ?        00:00:00 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
root      12211   1257  0 16:36 pts/0    00:00:00 grep --color=auto docker
[root@node-2 overlay2]# pstree 11951
dockerd───9*[{dockerd}]
[root@node-2 overlay2]# pstree 11951
dockerd───9*[{dockerd}]
[root@node-2 overlay2]# pstree -p 11951
dockerd(11951)─┬─{dockerd}(11952)
               ├─{dockerd}(11953)
               ├─{dockerd}(11954)
               ├─{dockerd}(11955)
               ├─{dockerd}(11956)
               ├─{dockerd}(11957)
               ├─{dockerd}(11958)
               ├─{dockerd}(11959)
               └─{dockerd}(12070)


# 下载镜像
[root@node-2 overlay2]# docker pull nginx
Using default tag: latest
chalatest: Pulling from library/nginx
8559a31e96f4: Pull complete
8d69e59170f7: Pull complete
3f9f1ec1d262: Pull complete
d1f5ff4f210d: Pull complete
1e22bfa8652e: Pull complete
Digest: sha256:21f32f6c08406306d822a0e6e8b7dc81f53f336570e852e25fbe1e3e3d0d0133
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest

# 以nginx镜像启动2个容器:
[root@node-2 overlay2]# docker run -it -d -p 80:80 nginx
3241dc8d7601b55c0de488d9b04715d0f263c9ef183d16a5d5c35a3f234f12e2
[root@node-2 overlay2]# docker run -it -d -p 81:80 nginx
855d166e25f80310f923d73cdce8fd4d89455ef6851ca8644fa4def6bbddb9e9