当前位置:   article > 正文

一篇文章完成Centos7安装docker

centos7安装docker

博主最近在学习docker容器的相关知识,分享一下自己的心得,分别已同步于博客园和CSDN

目录

docker安装-Centos7

一、环境准备

1. 卸载docker

1.1 参考:

1.2 查看是否安装docker

1.3 卸载 Docker 引擎、CLI 和 Containerd 软件包:

1.4 手动清理删除所有映像、容器和卷:

二、方式一:yum在线安装

1. 更新docker相关的yum源

2. 安装:

三、方式二:手动下载rpm包安装

1. 浏览器进入官网的下载地址,选择自己 需要的包

2. rpm安装和启动

四、方式三:二进制安装

1. 官方文档:

2. 创建docker用户组

3. 下载二进制安装包

4. 修改docker默认工作目录

5. 准备两个文件daemon.json和docker.socket

6. 配置开机自启

7. 配置命令补全

8. 添加harbor仓库

9. 可选:使容器默认跟随服务启动


一、环境准备

虚拟机

1台

系统版本

CentOS Linux release 7.8.2003 (Core)

内核版本

5.16.2-1.el7.elrepo.x86_64

访问外网

放通

阿里源

1. 卸载docker

1.1 参考:

卸载 Docker :Install Docker Engine on CentOS | Docker Documentation

1.2 查看是否安装docker

  1. docker info
  2. rpm -qa | grep docker

 0408fd1fa8d8b9223e06c6cbcf19f335.png

1.3 卸载 Docker 引擎、CLI 和 Containerd 软件包:

  1. yum remove docker-ce docker-ce-cli containerd.io
  2. #或者使用 rpm -e docker-ce docker-ce-cli containerd.io

1.4 手动清理删除所有映像、容器和卷:

  1. #查找出docker的相关文件夹
  2. find -name 'docker'
  3. #rm -rf 删除这些文件夹
  4. rm -rf /var/lib/docker
  5. rm -rf /var/lib/containerd

二、方式一:yum在线安装

1. 更新docker相关的yum源

适用于:在线安装:适用于学习,测试,有外网的机器

  1. #安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2
  2. yum install -y yum-utils device-mapper-persistent-data lvm2
  3. #设置仓库为阿里源
  4. yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  5. 或者
  6. wget http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  7. cp docker-ce.repo /etc/yum.repos.d
  8. #更新源
  9. yum clean all && yum mackecache
  10. #检查版本
  11. yum list docker-ce --showduplicates | sort -r
  12. yum list docker-ce-cli --showduplicates | sort -r
  13. #注意overlay2可能需要升级内核,它需要内核4.0以上支持:https://blog.51cto.com/daibaiyang119/2160923

2. 安装:

  1. #默认安装
  2. yum install docker-ce docker-ce-cli containerd.io
  3. #指定版本
  4. yum install docker-ce-20.10.9-3.el7 \
  5. docker-ce-cli-20.10.9-3.el7 \
  6. containerd.io
  7. #启动和查看
  8. systemctl start docker
  9. systemctl status docker
  10. docker --version
  11. docker info

三、方式二:手动下载rpm包安装

适用于生产环境或者内网环境离线安装

1. 浏览器进入官网的下载地址,选择自己 需要的包

Index of linux/centos/7/x86_64/stable/Packages/

        导出需要下载的地址,比如下载20版本

2. rpm安装和启动

需要依赖:

下载依赖后再安装:https://pkgs.org/download/

  1. rpm -ivh *.rpm
  2. #启动和查看
  3. systemctl start docker
  4. systemctl status docker
  5. docker --version
  6. docker info

四、方式三:二进制安装

二进制安装多用于企业的生产环境,安装也不复杂,生产环境可用此环境

1. 官方文档:

Install Docker Engine from binaries | Docker Documentation

Post-installation steps for Linux | Docker Documentation

2. 创建docker用户组

  1. sudo groupadd docker
  2. sudo usermod -aG docker $USER
  3. sudo newgrp docker

3. 下载二进制安装包

https://download.docker.com/linux/static/stable/x86_64/

版本:18.06-3

https://download.docker.com/linux/static/stable/x86_64/docker-18.06.3-ce.tgz

  1. #下载相关的安装包,上传至/home目录
  2. cd /home
  3. wget https://download.docker.com/linux/static/stable/x86_64/docker-18.06.3-ce.tgz
  4. #解压安装包
  5. tar -zxvf docker-18.06.3-ce.tgz
  6. cd /home/docker
  7. #复制命令到相关目录
  8. cp docker* /usr/bin
  9. cp docker* /usr/local/bin

4. 修改docker默认工作目录

  1. #先在/data创建docker目录
  2. mkdir /data/docker
  3. 方法1:使用命令/usr/bin/dockerd -g /自己想设置的目录
  4. /usr/bin/dockerd -g /data/docker
  5. #--设置到/data/docker目录
  6. 方法2:在服务启动时,加上参数,使其自动运行到自己相应的目录
  7. ExecStart=/usr/bin/dockerd -g /data/docker
  8. 或者ExecStart=/usr/bin/dockerd --data-root=/data/docker
  9. #这个参数下面开机自启添加

5. 准备两个文件daemon.json和docker.socket

        添加一个daemon.json文件,添加一个镜像获取地址或者加速地址,添加私有harbor也是这里添加,后面会提到

相关参考:https://www.cnblogs.com/bulh/articles/12523099.html

  1. vi /etc/docker/daemon.json
  2. {
  3. "registry-mirrors": ["https://hub.dockerhub.docker.com"]
  4. }

           添加一个docker.socket的文件,给服务监听使用

  1. cat << 'EOF' > /usr/lib/systemd/system/docker.socket
  2. [Unit]
  3. Description=Docker Socket for the API
  4. [Socket]
  5. ListenStream=/var/run/docker.sock
  6. SocketMode=0660
  7. SocketUser=root
  8. SocketGroup=docker
  9. [Install]
  10. WantedBy=sockets.target
  11. EOF

6. 配置开机自启

创建一个在/usr/lib/systemd/system/docker.service的文件

复制参数docker.service里面:

vi /usr/lib/systemd/system/docker.service

  1. [Unit]
  2. Description=Docker Application Container Engine
  3. Documentation=https://docs.docker.com
  4. After=network-online.target firewalld.service
  5. Wants=network-online.target
  6. [Service]
  7. Type=notify
  8. ExecStart=/usr/bin/dockerd -H unix://var/run/docker.sock -H tcp://0.0.0.0:2375 --data-root=/data/docker
  9. ExecReload=/bin/kill -s HUP $MAINPID
  10. TimeoutSec=0
  11. RestartSec=2
  12. Restart=always
  13. StartLimitBurst=3
  14. StartLimitInterval=60s
  15. LimitNOFILE=infinity
  16. LimitNPROC=infinity
  17. LimitCORE=infinity
  18. TasksMax=infinity
  19. Delegate=yes
  20. KillMode=process
  21. [Install]
  22. WantedBy=multi-user.target

赋予权限和重启服务:

  1. chmod +x /usr/lib/systemd/system/docker.service
  2. 重启服务:
  3. systemctl daemon-reload
  4. systemctl restart docker
  5. systemctl enable docker.service

7. 配置命令补全

参考:Docker笔记7:Docker 命令自动补齐 - morgan363 - 博客园

  1. #安装补全工具
  2. yum -y install bash-completion
  3. #查看补全目录是否存在docker相关
  4. ls /usr/share/bash-completion/completions/docker*
  5. #复制docker文件进去
  6. 由于是二进制安装,需要复制补全的文件进去,需要符合版本号
  7. 推荐去github上下载或者手动安装一个相同版本的机器上复制文件
  8. cd /usr/share/bash-completion/completions
  9. wget https://raw.githubusercontent.com/docker/cli/master/contrib/completion/bash/docker
  10. #mv 改名下载文件名为docker
  11. #使其生效
  12. source /usr/share/bash-completion/bash_completion
  13. source /usr/share/bash-completion/completions/docker

8. 添加harbor仓库

        修改启动服务的配置文件,添加地址

  1. vim /usr/lib/systemd/system/docker.service
  2. ExecStart= --graph /app/software --insecure-registry=hub.docker.com

        在daemon.json配合地址,如果是企业自建harbor,建议把registry-mirrors和insecure-registries都设置成私有harbor地址

  1. vim /etc/docker/daemon.json
  2. {
  3. "registry-mirrors": ["https://hub.docker.com"]
  4. ,"insecure-registries": ["https://hub.docker.com"]
  5. }

        使用docker login 登录,输入账号密码测试验证

9. 可选:使容器默认跟随服务启动

  1. docker container update --restart=always 容器名字
  2. #更新所有容器随服务启动
  3. docker container update --restart always $(docker ps -a -q)

作者:CSDN-麻辣香锅777
出处: https://blog.csdn.net/SUBSEA123/
CSDN主页: https://blog.csdn.net/SUBSEA123/
博客园主页: https://www.cnblogs.com/subsea/
简介:都是分享的自己学习的感悟,欢迎讨论,CSDN和博客园都是本人账号原创文章,平时会不定期更新博文,喜欢的点个赞吧! 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/877265
推荐阅读
相关标签
  

闽ICP备14008679号