一、卸载旧版docker
①:卸载旧版本docker
,如果yum
报告没有安装这些软件包,那也没关系。
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
具体执行如下:
[root@localhost yum.repos.d]# sudo yum remove docker \
> docker-client \
> docker-client-latest \
> docker-common \
> docker-latest \
> docker-latest-logrotate \
> docker-logrotate \
> docker-engine
已加载插件:fastestmirror, langpacks
参数 docker 没有匹配
参数 docker-client 没有匹配
参数 docker-client-latest 没有匹配
参数 docker-common 没有匹配
参数 docker-latest 没有匹配
参数 docker-latest-logrotate 没有匹配
参数 docker-logrotate 没有匹配
参数 docker-engine 没有匹配
不删除任何软件包
二、安装docker
①:设置存储库,在新主机上首次安装 Docker Engine
之前,您需要设置 Docker
存储库。之后,您可以从存储库 安装、更新 Docker
。
安装yum-utils
包(提供yum-config-manager
实用程序)并设置稳定存储库。
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
具体执行如下:
[root@localhost yum.repos.d]# sudo yum install -y yum-utils
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
软件包 yum-utils-1.1.31-54.el7_8.noarch 已安装并且是最新版本
无须任何处理
[root@localhost yum.repos.d]#
[root@localhost yum.repos.d]#
[root@localhost yum.repos.d]# sudo yum-config-manager \
> --add-repo \
> https://download.docker.com/linux/centos/docker-ce.repo
已加载插件:fastestmirror, langpacks
adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo
②:安装Docker Engine
,安装最新版本的 Docker Engine
和 containerd
sudo yum install docker-ce docker-ce-cli containerd.io
具体执行如下:
[root@localhost yum.repos.d]# sudo yum install docker-ce docker-ce-cli containerd.io
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
docker-ce-stable | 3.5 kB 00:00:00
(1/2): docker-ce-stable/7/x86_64/updateinfo | 55 B 00:00:00
(2/2): docker-ce-stable/7/x86_64/primary_db | 62 kB 00:00:00
正在解决依赖关系
--> 正在检查事务
---> 软件包 containerd.io.x86_64.0.1.4.6-3.1.el7 将被 安装
--> 正在处理依赖关系 container-selinux >= 2:2.74,它被软件包 containerd.io-1.4.6-3.1.el7.x86_64 需要
---> 软件包 docker-ce.x86_64.3.20.10.7-3.el7 将被 安装
--> 正在处理依赖关系 docker-ce-rootless-extras,它被软件包 3:docker-ce-20.10.7-3.el7.x86_64 需要
---> 软件包 docker-ce-cli.x86_64.1.20.10.7-3.el7 将被 安装
--> 正在处理依赖关系 docker-scan-plugin(x86-64),它被软件包 1:docker-ce-cli-20.10.7-3.el7.x86_64 需要
--> 正在检查事务
---> 软件包 container-selinux.noarch.2.2.119.2-1.911c772.el7_8 将被 安装
---> 软件包 docker-ce-rootless-extras.x86_64.0.20.10.7-3.el7 将被 安装
--> 正在处理依赖关系 fuse-overlayfs >= 0.7,它被软件包 docker-ce-rootless-extras-20.10.7-3.el7.x86_64 需要
......
......
③:docker
安装成功后,查看docker
的版本信息:
[root@localhost yum.repos.d]# docker version
Client: Docker Engine - Community
Version: 20.10.7
API version: 1.41
Go version: go1.13.15
Git commit: f0df350
Built: Wed Jun 2 11:58:10 2021
OS/Arch: linux/amd64
Context: default
Experimental: true
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
三、启动docker
①:手动启动docker
:
systemctl start docker
②:centos7
中设置docker
开机自启动:
sudo systemctl enable docker
四、配置docker
镜像加速器
①:配置docker
镜像加速器,您可以通过修改daemon
配置文件/etc/docker/daemon.json
来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://f69s1xsk.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
实际执行结果如下:
[root@localhost yum.repos.d]# sudo mkdir -p /etc/docker
[root@localhost yum.repos.d]#
[root@localhost yum.repos.d]# sudo tee /etc/docker/daemon.json <<-'EOF'
> {
> "registry-mirrors": ["https://f69s1xsk.mirror.aliyuncs.com"]
> }
> EOF
{
"registry-mirrors": ["https://f69s1xsk.mirror.aliyuncs.com"]
}
[root@localhost yum.repos.d]#
[root@localhost yum.repos.d]# sudo systemctl daemon-reload
[root@localhost yum.repos.d]#
[root@localhost yum.repos.d]# sudo systemctl restart docker
[root@localhost yum.repos.d]#
[root@localhost yum.repos.d]# cat /etc/docker/daemon.json
{
"registry-mirrors": ["https://f69s1xsk.mirror.aliyuncs.com"]
}
五、以非 root 用户管理 Docker
Docker
守护进程绑定到Unix
套接字而不是TCP
端口。默认情况下,Unix
套接字归用户所有root
,其他用户只能使用sudo
。Docker
守护进程始终以root
用户身份运行。
如果您不想在docker
命令前加上sudo
,请创建一个名为的Unix
组docker
并向其中添加用户。当Docker
守护进程启动时,它会创建一个可由docker
组成员访问的Unix
套接字。
①:创建
docker
组。sudo groupadd docker
②:将您的用户添加到
docker
组中。sudo usermod -aG docker $USER
③:注销并重新登录,以便重新评估您的组成员身份。如果在
Linux
上,您还可以运行以下命令来激活对组的更改:newgrp docker
④:验证您可以在
docker
没有sudo
.[root@localhost ~]# echo $USER
root
[greamrod@localhost root]$
[root@localhost ~]# su greamrod
[greamrod@localhost root]$
[greamrod@localhost root]$ echo $USER
greamrod
[greamrod@localhost root]$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[greamrod@localhost root]$
[greamrod@localhost root]$ docker --version
Docker version 20.10.9, build c2ea9bc
六、开发docker
的2375
端口号
①:修改/lib/systemd/system/docker.service
文件:
原本内容如下:
[greamrod@localhost ~]$ cat /lib/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service containerd.service
Wants=network-online.target
Requires=docker.socket containerd.service
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
# Note that StartLimit* options were moved from "Service" to "Unit" in systemd 229.
# Both the old, and new location are accepted by systemd 229 and up, so using the old location
# to make them work for either version of systemd.
StartLimitBurst=3
# Note that StartLimitInterval was renamed to StartLimitIntervalSec in systemd 230.
# Both the old, and new name are accepted by systemd 230 and up, so using the old name to make
# this option work for either version of systemd.
StartLimitInterval=60s
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Comment TasksMax if your systemd version does not support it.
# Only systemd 226 and above support this option.
TasksMax=infinity
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
OOMScoreAdjust=-500
[Install]
WantedBy=multi-user.target
[greamrod@localhost ~]$
[greamrod@localhost ~]$ ll /lib/systemd/system/docker.service
-rw-r--r--. 1 root root 1695 6月 2 19:57 /lib/systemd/system/docker.service
将以下这一行配置:
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
替换为:
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
②:开发端2375
口号:
# 开发指定端口号
sudo firewall-cmd --zone=public --add-port=2375/tcp --permanent
# 更新防火墙规则
sudo firewall-cmd --reload
# 查看所有打开的端口
sudo firewall-cmd --zone=public --list-ports
具体执行如下:
[greamrod@localhost ~]$ sudo firewall-cmd --zone=public --add-port=2375/tcp --permanent
success
[greamrod@localhost ~]$
[greamrod@localhost ~]$ sudo firewall-cmd --reload
success
③:重启docker
:
sudo systemctl daemon-reload
sudo systemctl restart docker
七、安装docker-compose
①:运行此命令以下载Docker Compose
的当前稳定版本:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
具体执行如下:
[root@localhost greamrod]# sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 633 100 633 0 0 969 0 --:--:-- --:--:-- --:--:-- 970
100 12.1M 100 12.1M 0 0 1654k 0 0:00:07 0:00:07 --:--:-- 2445k
②:对二进制文件应用可执行权限:
sudo chmod +x /usr/local/bin/docker-compose
③:测试是否安装成功:
docker-compose version
④:链接:
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
具体执行如下:
[greamrod@localhost ~]$ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
[sudo] greamrod 的密码:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 633 100 633 0 0 1590 0 --:--:-- --:--:-- --:--:-- 1594
100 12.1M 100 12.1M 0 0 1527k 0 0:00:08 0:00:08 --:--:-- 2082k
[greamrod@localhost ~]$
[greamrod@localhost ~]$
[greamrod@localhost ~]$ sudo chmod +x /usr/local/bin/docker-compose
[greamrod@localhost ~]$
[greamrod@localhost ~]$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
[sudo] greamrod 的密码:
[greamrod@localhost ~]$
[greamrod@localhost ~]$ ll /usr/bin/docker-compose
lrwxrwxrwx. 1 root root 29 6月 29 09:48 /usr/bin/docker-compose -> /usr/local/bin/docker-compose
[greamrod@localhost ~]$
[greamrod@localhost ~]$ docker-compose --version
docker-compose version 1.29.2, build 5becea4c
参考链接
文章参考链接
- 在
CentOS
上安装Docker
引擎:[https://docs.docker.com/engine/install/centos/](https://docs.docker.com/engine/install/centos/)