«

Centos安装docker

Sun 发布于 阅读:146 docker


  1. 卸载docker
    查看是否安装docker
    docker info
    rpm -qa | grep docker
    卸载 Docker 引擎、CLI 和 Containerd 软件包:
    yum remove docker-ce docker-ce-cli containerd.io

    或者使用 rpm -e docker-ce docker-ce-cli containerd.io

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

    查找出docker的相关文件夹

    find -name 'docker'

    rm -rf 删除这些文件夹

    rm -rf /var/lib/docker
    rm -rf /var/lib/containerd
    二、方式一:yum在线安装

    安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。

    yum install -y yum-utils device-mapper-persistent-data lvm2

    设置仓库为阿里源

    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    或者
    wget http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    cp docker-ce.repo /etc/yum.repos.d

    更新源

    yum clean all && yum mackecache

    检查版本

    yum list docker-ce --showduplicates | sort -r
    yum list docker-ce-cli --showduplicates | sort -r

    注意overlay2可能需要升级内核,它需要内核4.0以上支持:https://blog.51cto.com/daibaiyang119/2160923

  2. 安装:

    默认安装

    yum install docker-ce docker-ce-cli containerd.io

    指定版本

    yum install docker-ce-20.10.9-3.el7 \
    docker-ce-cli-20.10.9-3.el7 \
    containerd.io

    启动和查看

    systemctl start docker
    systemctl status docker
    docker --version
    docker info
    三、方式二:手动下载rpm包安装

  3. 浏览器进入官网的下载地址,选择自己 需要的包
    Index of linux/centos/7/x86_64/stable/Packages/
    导出需要下载的地址,比如下载20版本
  4. rpm安装和启动
    需要依赖:

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

rpm -ivh *.rpm

启动和查看

systemctl start docker
systemctl status docker
docker --version
docker info

四、方式三:二进制安装
二进制安装多用于企业的生产环境,安装也不复杂,生产环境可用此环境

  1. 官方文档:
    Install Docker Engine from binaries | Docker Documentation
    Post-installation steps for Linux | Docker Documentation

  2. 创建docker用户组
    sudo groupadd docker
    sudo usermod -aG docker $USER
    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

下载相关的安装包,上传至/home目录

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

解压安装包

tar -zxvf docker-18.06.3-ce.tgz
cd /home/docker

复制命令到相关目录

cp docker* /usr/bin
cp docker* /usr/local/bin

  1. 修改docker默认工作目录

    先在/data创建docker目录

    mkdir /data/docker
    方法1:使用命令/usr/bin/dockerd -g /自己想设置的目录
    /usr/bin/dockerd -g /data/docker

    --设置到/data/docker目录

    方法2:在服务启动时,加上参数,使其自动运行到自己相应的目录
    ExecStart=/usr/bin/dockerd -g /data/docker
    或者ExecStart=/usr/bin/dockerd --data-root=/data/docker

    这个参数下面开机自启添加

  2. 准备两个文件daemon.json和docker.socket
    添加一个daemon.json文件,添加一个镜像获取地址或者加速地址,添加私有harbor也是这里添加,后面会提到
    相关参考:https://www.cnblogs.com/bulh/articles/12523099.html
    vi /etc/docker/daemon.json { "registry-mirrors": ["https://hub.dockerhub.docker.com"] } 添加一个docker.socket的文件,给服务监听使用 cat << 'EOF' > /usr/lib/systemd/system/docker.socket [Unit] Description=Docker Socket for the API [Socket] ListenStream=/var/run/docker.sock SocketMode=0660 SocketUser=root SocketGroup=docker
    [Install]
    WantedBy=sockets.target
    EOF

  3. 配置开机自启
    创建一个在/usr/lib/systemd/system/docker.service的文件
    复制参数docker.service里面:
    vi /usr/lib/systemd/system/docker.service
    [Unit]
    Description=Docker Application Container Engine
    Documentation=https://docs.docker.com
    After=network-online.target firewalld.service
    Wants=network-online.target
    [Service]
    Type=notify
    ExecStart=/usr/bin/dockerd -H unix://var/run/docker.sock -H tcp://0.0.0.0:2375 --data-root=/data/docker
    ExecReload=/bin/kill -s HUP $MAINPID
    TimeoutSec=0
    RestartSec=2
    Restart=always
    StartLimitBurst=3
    StartLimitInterval=60s
    LimitNOFILE=infinity
    LimitNPROC=infinity
    LimitCORE=infinity
    TasksMax=infinity
    Delegate=yes
    KillMode=process
    [Install]
    WantedBy=multi-user.target
    赋予权限和重启服务:
    chmod +x /usr/lib/systemd/system/docker.service
    重启服务:
    systemctl daemon-reload
    systemctl restart docker
    systemctl enable docker.service

  4. 配置命令补全
    参考:Docker笔记7:Docker 命令自动补齐 - morgan363 - 博客园

    安装补全工具

    yum -y install bash-completion

    查看补全目录是否存在docker相关

    ls /usr/share/bash-completion/completions/docker*

    复制docker文件进去

    由于是二进制安装,需要复制补全的文件进去,需要符合版本号
    推荐去github上下载或者手动安装一个相同版本的机器上复制文件
    cd /usr/share/bash-completion/completions
    wget https://raw.githubusercontent.com/docker/cli/master/contrib/completion/bash/docker

    mv 改名下载文件名为docker

    使其生效

    source /usr/share/bash-completion/bash_completion
    source /usr/share/bash-completion/completions/docker

  5. 添加harbor仓库
    修改启动服务的配置文件,添加地址
    vim /usr/lib/systemd/system/docker.service
    ExecStart= --graph /app/software --insecure-registry=hub.docker.com
    在daemon.json配合地址,如果是企业自建harbor,建议把registry-mirrors和insecure-registries都设置成私有harbor地址
    vim /etc/docker/daemon.json
    {
    "registry-mirrors": ["https://hub.docker.com"]
    ,"insecure-registries": ["https://hub.docker.com"]
    }
    使用docker login 登录,输入账号密码测试验证

  6. 可选:使容器默认跟随服务启动
    docker container update --restart=always 容器名字

    更新所有容器随服务启动

    docker container update --restart always $(docker ps -a -q)