一、卸载旧版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-utilssudo 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, langpacksLoading 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, langpacksadding repo from: https://download.docker.com/linux/centos/docker-ce.repograbbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.reporepo 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, langpacksLoading mirror speeds from cached hostfile* base: mirrors.aliyun.com* extras: mirrors.aliyun.com* updates: mirrors.aliyun.comdocker-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 versionClient: Docker Engine - CommunityVersion: 20.10.7API version: 1.41Go version: go1.13.15Git commit: f0df350Built: Wed Jun 2 11:58:10 2021OS/Arch: linux/amd64Context: defaultExperimental: trueCannot 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/dockersudo tee /etc/docker/daemon.json <<-'EOF'{"registry-mirrors": ["https://f69s1xsk.mirror.aliyuncs.com"]}EOFsudo systemctl daemon-reloadsudo 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 $USERroot[greamrod@localhost root]$[root@localhost ~]# su greamrod[greamrod@localhost root]$[greamrod@localhost root]$ echo $USERgreamrod[greamrod@localhost root]$ docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES[greamrod@localhost root]$[greamrod@localhost root]$ docker --versionDocker 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 EngineDocumentation=https://docs.docker.comAfter=network-online.target firewalld.service containerd.serviceWants=network-online.targetRequires=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 dockerExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sockExecReload=/bin/kill -s HUP $MAINPIDTimeoutSec=0RestartSec=2Restart=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=infinityLimitNPROC=infinityLimitCORE=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 containersDelegate=yes# kill only the docker process, not all processes in the cgroupKillMode=processOOMScoreAdjust=-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 --permanentsuccess[greamrod@localhost ~]$[greamrod@localhost ~]$ sudo firewall-cmd --reloadsuccess
③:重启docker:
sudo systemctl daemon-reloadsudo 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 CurrentDload Upload Total Spent Left Speed100 633 100 633 0 0 969 0 --:--:-- --:--:-- --:--:-- 970100 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 CurrentDload Upload Total Spent Left Speed100 633 100 633 0 0 1590 0 --:--:-- --:--:-- --:--:-- 1594100 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-composelrwxrwxrwx. 1 root root 29 6月 29 09:48 /usr/bin/docker-compose -> /usr/local/bin/docker-compose[greamrod@localhost ~]$[greamrod@localhost ~]$ docker-compose --versiondocker-compose version 1.29.2, build 5becea4c
参考链接
文章参考链接
- 在
CentOS上安装Docker引擎:[https://docs.docker.com/engine/install/centos/](https://docs.docker.com/engine/install/centos/)
