• Docker


    1 - 检查当前版本

    [root@localhost ~]# uname -a
    Linux localhost.localdomain 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
    [root@localhost ~]# 
    [root@localhost ~]# cat /etc/system-release
    CentOS Linux release 7.5.1804 (Core) 
    [root@localhost ~]# 
    [root@localhost ~]# docker version
    Client:
     Version:         1.13.1
     API version:     1.26
     Package version: docker-1.13.1-102.git7f2769b.el7.centos.x86_64
     Go version:      go1.10.3
     Git commit:      7f2769b/1.13.1
     Built:           Mon Aug  5 15:09:42 2019
     OS/Arch:         linux/amd64
    
    Server:
     Version:         1.13.1
     API version:     1.26 (minimum version 1.12)
     Package version: docker-1.13.1-102.git7f2769b.el7.centos.x86_64
     Go version:      go1.10.3
     Git commit:      7f2769b/1.13.1
     Built:           Mon Aug  5 15:09:42 2019
     OS/Arch:         linux/amd64
     Experimental:    false
    [root@localhost ~]# 
    

    2 - 卸载旧版本

    [root@localhost ~]# rpm -qa |grep -i docker
    docker-1.13.1-102.git7f2769b.el7.centos.x86_64
    docker-client-1.13.1-102.git7f2769b.el7.centos.x86_64
    docker-common-1.13.1-102.git7f2769b.el7.centos.x86_64
    [root@localhost ~]# 
    [root@localhost ~]# yum remove docker 
    > docker-client 
    > docker-client-latest 
    > docker-common 
    > docker-latest 
    > docker-latest-logrotate 
    > docker-logrotate 
    > docker-engine
    Loaded plugins: fastestmirror, langpacks
    No Match for argument: docker-client-latest
    No Match for argument: docker-latest
    No Match for argument: docker-latest-logrotate
    No Match for argument: docker-logrotate
    No Match for argument: docker-engine
    Resolving Dependencies
    --> Running transaction check
    ---> Package docker.x86_64 2:1.13.1-102.git7f2769b.el7.centos will be erased
    ---> Package docker-client.x86_64 2:1.13.1-102.git7f2769b.el7.centos will be erased
    ---> Package docker-common.x86_64 2:1.13.1-102.git7f2769b.el7.centos will be erased
    --> Finished Dependency Resolution
    
    Dependencies Resolved
    
    =============================================================================================
     Package            Arch        Version                                   Repository    Size
    =============================================================================================
    Removing:
     docker             x86_64      2:1.13.1-102.git7f2769b.el7.centos        @extras       65 M
     docker-client      x86_64      2:1.13.1-102.git7f2769b.el7.centos        @extras       13 M
     docker-common      x86_64      2:1.13.1-102.git7f2769b.el7.centos        @extras      4.4 k
    
    Transaction Summary
    =============================================================================================
    Remove  3 Packages
    
    Installed size: 77 M
    Is this ok [y/N]: y
    Downloading packages:
    Running transaction check
    Running transaction test
    Transaction test succeeded
    Running transaction
      Erasing    : 2:docker-1.13.1-102.git7f2769b.el7.centos.x86_64                          1/3 
    warning: /etc/sysconfig/docker-storage saved as /etc/sysconfig/docker-storage.rpmsave
    warning: /etc/docker/daemon.json saved as /etc/docker/daemon.json.rpmsave
      Erasing    : 2:docker-client-1.13.1-102.git7f2769b.el7.centos.x86_64                   2/3 
      Erasing    : 2:docker-common-1.13.1-102.git7f2769b.el7.centos.x86_64                   3/3 
    warning: /etc/sysconfig/docker saved as /etc/sysconfig/docker.rpmsave
      Verifying  : 2:docker-client-1.13.1-102.git7f2769b.el7.centos.x86_64                   1/3 
      Verifying  : 2:docker-1.13.1-102.git7f2769b.el7.centos.x86_64                          2/3 
      Verifying  : 2:docker-common-1.13.1-102.git7f2769b.el7.centos.x86_64                   3/3 
    
    Removed:
      docker.x86_64 2:1.13.1-102.git7f2769b.el7.centos                                           
      docker-client.x86_64 2:1.13.1-102.git7f2769b.el7.centos                                    
      docker-common.x86_64 2:1.13.1-102.git7f2769b.el7.centos                                    
    
    Complete!
    [root@localhost ~]# 
    

    3 - 设置仓库

    3.1 安装必要的包

    [root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
    Loaded plugins: fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
     * base: centos.mirror.far.fi
     * epel: epel.besthosting.ua
     * extras: centos.mirror.far.fi
     * updates: centos.mirror.far.fi
    Package device-mapper-persistent-data-0.7.3-3.el7.x86_64 already installed and latest version
    Resolving Dependencies
    --> Running transaction check
    ---> Package lvm2.x86_64 7:2.02.177-4.el7 will be updated
    ---> Package lvm2.x86_64 7:2.02.180-10.el7_6.8 will be an update
    --> Processing Dependency: lvm2-libs = 7:2.02.180-10.el7_6.8 for package: 7:lvm2-2.02.180-10.el7_6.8.x86_64
    ---> Package yum-utils.noarch 0:1.1.31-45.el7 will be updated
    ---> Package yum-utils.noarch 0:1.1.31-50.el7 will be an update
    --> Running transaction check
    ---> Package lvm2-libs.x86_64 7:2.02.177-4.el7 will be updated
    ---> Package lvm2-libs.x86_64 7:2.02.180-10.el7_6.8 will be an update
    --> Processing Dependency: device-mapper-event = 7:1.02.149-10.el7_6.8 for package: 7:lvm2-libs-2.02.180-10.el7_6.8.x86_64
    --> Running transaction check
    ---> Package device-mapper-event.x86_64 7:1.02.146-4.el7 will be updated
    ---> Package device-mapper-event.x86_64 7:1.02.149-10.el7_6.8 will be an update
    --> Processing Dependency: device-mapper-event-libs = 7:1.02.149-10.el7_6.8 for package: 7:device-mapper-event-1.02.149-10.el7_6.8.x86_64
    --> Processing Dependency: device-mapper = 7:1.02.149-10.el7_6.8 for package: 7:device-mapper-event-1.02.149-10.el7_6.8.x86_64
    --> Running transaction check
    ---> Package device-mapper.x86_64 7:1.02.146-4.el7 will be updated
    --> Processing Dependency: device-mapper = 7:1.02.146-4.el7 for package: 7:device-mapper-libs-1.02.146-4.el7.x86_64
    ---> Package device-mapper.x86_64 7:1.02.149-10.el7_6.8 will be an update
    ---> Package device-mapper-event-libs.x86_64 7:1.02.146-4.el7 will be updated
    ---> Package device-mapper-event-libs.x86_64 7:1.02.149-10.el7_6.8 will be an update
    --> Running transaction check
    ---> Package device-mapper-libs.x86_64 7:1.02.146-4.el7 will be updated
    ---> Package device-mapper-libs.x86_64 7:1.02.149-10.el7_6.8 will be an update
    --> Finished Dependency Resolution
    
    Dependencies Resolved
    
    =============================================================================================
     Package                        Arch         Version                     Repository     Size
    =============================================================================================
    Updating:
     lvm2                           x86_64       7:2.02.180-10.el7_6.8       updates       1.3 M
     yum-utils                      noarch       1.1.31-50.el7               base          121 k
    Updating for dependencies:
     device-mapper                  x86_64       7:1.02.149-10.el7_6.8       updates       293 k
     device-mapper-event            x86_64       7:1.02.149-10.el7_6.8       updates       189 k
     device-mapper-event-libs       x86_64       7:1.02.149-10.el7_6.8       updates       188 k
     device-mapper-libs             x86_64       7:1.02.149-10.el7_6.8       updates       321 k
     lvm2-libs                      x86_64       7:2.02.180-10.el7_6.8       updates       1.1 M
    
    Transaction Summary
    =============================================================================================
    Upgrade  2 Packages (+5 Dependent packages)
    
    Total size: 3.5 M
    Downloading packages:
    Running transaction check
    Running transaction test
    Transaction test succeeded
    Running transaction
      Updating   : 7:device-mapper-1.02.149-10.el7_6.8.x86_64                               1/14 
      Updating   : 7:device-mapper-libs-1.02.149-10.el7_6.8.x86_64                          2/14 
      Updating   : 7:device-mapper-event-libs-1.02.149-10.el7_6.8.x86_64                    3/14 
      Updating   : 7:device-mapper-event-1.02.149-10.el7_6.8.x86_64                         4/14 
      Updating   : 7:lvm2-libs-2.02.180-10.el7_6.8.x86_64                                   5/14 
      Updating   : 7:lvm2-2.02.180-10.el7_6.8.x86_64                                        6/14 
      Updating   : yum-utils-1.1.31-50.el7.noarch                                           7/14 
      Cleanup    : yum-utils-1.1.31-45.el7.noarch                                           8/14 
      Cleanup    : 7:lvm2-2.02.177-4.el7.x86_64                                             9/14 
      Cleanup    : 7:lvm2-libs-2.02.177-4.el7.x86_64                                       10/14 
      Cleanup    : 7:device-mapper-event-1.02.146-4.el7.x86_64                             11/14 
      Cleanup    : 7:device-mapper-event-libs-1.02.146-4.el7.x86_64                        12/14 
      Cleanup    : 7:device-mapper-1.02.146-4.el7.x86_64                                   13/14 
      Cleanup    : 7:device-mapper-libs-1.02.146-4.el7.x86_64                              14/14 
      Verifying  : 7:device-mapper-event-1.02.149-10.el7_6.8.x86_64                         1/14 
      Verifying  : 7:device-mapper-libs-1.02.149-10.el7_6.8.x86_64                          2/14 
      Verifying  : yum-utils-1.1.31-50.el7.noarch                                           3/14 
      Verifying  : 7:device-mapper-event-libs-1.02.149-10.el7_6.8.x86_64                    4/14 
      Verifying  : 7:lvm2-2.02.180-10.el7_6.8.x86_64                                        5/14 
      Verifying  : 7:lvm2-libs-2.02.180-10.el7_6.8.x86_64                                   6/14 
      Verifying  : 7:device-mapper-1.02.149-10.el7_6.8.x86_64                               7/14 
      Verifying  : 7:device-mapper-1.02.146-4.el7.x86_64                                    8/14 
      Verifying  : 7:device-mapper-event-1.02.146-4.el7.x86_64                              9/14 
      Verifying  : yum-utils-1.1.31-45.el7.noarch                                          10/14 
      Verifying  : 7:device-mapper-event-libs-1.02.146-4.el7.x86_64                        11/14 
      Verifying  : 7:lvm2-libs-2.02.177-4.el7.x86_64                                       12/14 
      Verifying  : 7:lvm2-2.02.177-4.el7.x86_64                                            13/14 
      Verifying  : 7:device-mapper-libs-1.02.146-4.el7.x86_64                              14/14 
    
    Updated:
      lvm2.x86_64 7:2.02.180-10.el7_6.8             yum-utils.noarch 0:1.1.31-50.el7            
    
    Dependency Updated:
      device-mapper.x86_64 7:1.02.149-10.el7_6.8                                                 
      device-mapper-event.x86_64 7:1.02.149-10.el7_6.8                                           
      device-mapper-event-libs.x86_64 7:1.02.149-10.el7_6.8                                      
      device-mapper-libs.x86_64 7:1.02.149-10.el7_6.8                                            
      lvm2-libs.x86_64 7:2.02.180-10.el7_6.8                                                     
    
    Complete!
    [root@localhost ~]# 
    

    3.2 设置稳定的仓库

    [root@localhost ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    Loaded plugins: 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
    [root@localhost ~]# 
    

    4 - 安装与配置Docker Engine - Community

    4.1 安装最新版本

    [root@localhost ~]# yum install docker-ce docker-ce-cli containerd.io
    Loaded plugins: fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
     * base: centos.mirror.far.fi
     * epel: epel.besthosting.ua
     * extras: centos.mirror.far.fi
     * updates: centos.mirror.far.fi
    docker-ce-stable                                                      | 3.5 kB  00:00:00     
    (1/2): docker-ce-stable/x86_64/updateinfo                             |   55 B  00:00:01     
    (2/2): docker-ce-stable/x86_64/primary_db                             |  32 kB  00:00:01     
    Resolving Dependencies
    --> Running transaction check
    ---> Package containerd.io.x86_64 0:1.2.6-3.3.el7 will be installed
    ---> Package docker-ce.x86_64 3:19.03.1-3.el7 will be installed
    ---> Package docker-ce-cli.x86_64 1:19.03.1-3.el7 will be installed
    --> Finished Dependency Resolution
    
    Dependencies Resolved
    
    =============================================================================================
     Package               Arch           Version                 Repository                Size
    =============================================================================================
    Installing:
     containerd.io         x86_64         1.2.6-3.3.el7           docker-ce-stable          26 M
     docker-ce             x86_64         3:19.03.1-3.el7         docker-ce-stable          24 M
     docker-ce-cli         x86_64         1:19.03.1-3.el7         docker-ce-stable          39 M
    
    Transaction Summary
    =============================================================================================
    Install  3 Packages
    
    Total download size: 90 M
    Installed size: 368 M
    Is this ok [y/d/N]: y
    Downloading packages:
    warning: /var/cache/yum/x86_64/7/docker-ce-stable/packages/docker-ce-19.03.1-3.el7.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID 621e9f35: NOKEY
    Public key for docker-ce-19.03.1-3.el7.x86_64.rpm is not installed
    (1/3): docker-ce-19.03.1-3.el7.x86_64.rpm                             |  24 MB  00:00:34     
    (2/3): containerd.io-1.2.6-3.3.el7.x86_64.rpm                         |  26 MB  00:00:39     
    (3/3): docker-ce-cli-19.03.1-3.el7.x86_64.rpm                         |  39 MB  00:00:55     
    ---------------------------------------------------------------------------------------------
    Total                                                        1.0 MB/s |  90 MB  00:01:29     
    Retrieving key from https://download.docker.com/linux/centos/gpg
    Importing GPG key 0x621E9F35:
     Userid     : "Docker Release (CE rpm) <docker@docker.com>"
     Fingerprint: 060a 61c5 1b55 8a7f 742b 77aa c52f eb6b 621e 9f35
     From       : https://download.docker.com/linux/centos/gpg
    Is this ok [y/N]: y
    Running transaction check
    Running transaction test
    Transaction test succeeded
    Running transaction
      Installing : containerd.io-1.2.6-3.3.el7.x86_64                                        1/3 
      Installing : 1:docker-ce-cli-19.03.1-3.el7.x86_64                                      2/3 
      Installing : 3:docker-ce-19.03.1-3.el7.x86_64                                          3/3 
      Verifying  : 1:docker-ce-cli-19.03.1-3.el7.x86_64                                      1/3 
      Verifying  : 3:docker-ce-19.03.1-3.el7.x86_64                                          2/3 
      Verifying  : containerd.io-1.2.6-3.3.el7.x86_64                                        3/3 
    
    Installed:
      containerd.io.x86_64 0:1.2.6-3.3.el7            docker-ce.x86_64 3:19.03.1-3.el7           
      docker-ce-cli.x86_64 1:19.03.1-3.el7           
    
    Complete!
    [root@localhost ~]# 
    

    4.2 设置代理

    根据网络实际状态来选择是否设置代理。

    [root@localhost ~]# mkdir -p /etc/systemd/system/docker.service.d
    [root@localhost ~]# vim /etc/systemd/system/docker.service.d/http-proxy.conf
    [root@localhost ~]# cat /etc/systemd/system/docker.service.d/http-proxy.conf
    [Service]
    Environment="HTTP_PROXY=http://10.144.1.10:8080/"
    Environment="HTTPS_PROXY=http://10.144.1.10:8080/"
    [root@localhost ~]# 
    

    4.3 设置国内镜像

    通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

    [root@localhost ~]# sudo mkdir -p /etc/docker
    [root@localhost ~]# sudo tee /etc/docker/daemon.json <<-'EOF'
    > {
    >   "registry-mirrors": ["https://t5t8q6wn.mirror.aliyuncs.com"]
    > }
    > EOF
    {
      "registry-mirrors": ["https://t5t8q6wn.mirror.aliyuncs.com"]
    }
    

    4.4 启动Docker

    [root@localhost ~]# systemctl start docker
    [root@localhost ~]# 
    [root@localhost ~]# docker version
    Client: Docker Engine - Community
     Version:           19.03.1
     API version:       1.40
     Go version:        go1.12.5
     Git commit:        74b1e89
     Built:             Thu Jul 25 21:21:07 2019
     OS/Arch:           linux/amd64
     Experimental:      false
    
    Server: Docker Engine - Community
     Engine:
      Version:          19.03.1
      API version:      1.40 (minimum version 1.12)
      Go version:       go1.12.5
      Git commit:       74b1e89
      Built:            Thu Jul 25 21:19:36 2019
      OS/Arch:          linux/amd64
      Experimental:     false
     containerd:
      Version:          1.2.6
      GitCommit:        894b81a4b802e4eb2a91d1ce216b8817763c29fb
     runc:
      Version:          1.0.0-rc8
      GitCommit:        425e105d5a03fabd737a126ad93d62a9eeede87f
     docker-init:
      Version:          0.18.0
      GitCommit:        fec3683
    [root@localhost ~]# 
    

    4.4 验证是否安装成功

    [root@localhost ~]# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    [root@localhost ~]# docker ps -a
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
    [root@localhost ~]# 
    [root@localhost ~]# docker run hello-world
    Unable to find image 'hello-world:latest' locally
    latest: Pulling from library/hello-world
    1b930d010525: Pull complete 
    Digest: sha256:6540fc08ee6e6b7b63468dc3317e3303aae178cb8a45ed3123180328bcc1d20f
    Status: Downloaded newer image for hello-world:latest
    
    Hello from Docker!
    This message shows that your installation appears to be working correctly.
    
    To generate this message, Docker took the following steps:
     1. The Docker client contacted the Docker daemon.
     2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
        (amd64)
     3. The Docker daemon created a new container from that image which runs the
        executable that produces the output you are currently reading.
     4. The Docker daemon streamed that output to the Docker client, which sent it
        to your terminal.
    
    To try something more ambitious, you can run an Ubuntu container with:
     $ docker run -it ubuntu bash
    
    Share images, automate workflows, and more with a free Docker ID:
     https://hub.docker.com/
    
    For more examples and ideas, visit:
     https://docs.docker.com/get-started/
    
    [root@localhost ~]# 
    [root@localhost ~]# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    hello-world         latest              fce289e99eb9        7 months ago        1.84kB
    [root@localhost ~]# 
    [root@localhost ~]# docker ps -a
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
    466a14bbfa5b        hello-world         "/hello"            11 seconds ago      Exited (0) 10 seconds ago                       gallant_herschel
    [root@localhost ~]# 
    
    

    5 - 问题处理

    5.1 问题现象-1

    [root@localhost ~]# yum-config-manager 
    > --add-repo 
    > https://download.docker.com/linux/centos/docker-ce.repo
      File "/bin/yum-config-manager", line 135
        except yum.Errors.RepoError, e:
                                   ^
    SyntaxError: invalid syntax
    [root@localhost ~]# 
    

    问题原因与处理方法:

    • 因前期将系统自带python2升级到Python3,导致/bin/yum-config-manager#!/usr/bin/python语句无法生效。
    • 修改为对应内容即可。
    [root@localhost ~]# head -n 1 /bin/yum-config-manager
    #!/usr/bin/python -tt
    [root@localhost ~]# 
    [root@localhost ~]# python --version
    Python 3.7.4
    [root@localhost ~]# python2 --version
    Python 2.7.5
    [root@localhost ~]# ll /usr/bin/ |grep -i python
    -rwxr-xr-x.   1 root root       11312 Apr 27  2018 abrt-action-analyze-python
    lrwxrwxrwx    1 root root          29 Jul 29 10:14 pip -> /usr/local/python3.7/bin/pip3
    -rwxr-xr-x.   1 root root        7280 Apr 13  2018 pmpython
    lrwxrwxrwx    1 root root          32 Jul 29 10:14 python -> /usr/local/python3.7/bin/python3
    lrwxrwxrwx.   1 root root           9 Nov 16  2018 python2 -> python2.7
    -rwxr-xr-x.   1 root root        7216 Apr 11  2018 python2.7
    lrwxrwxrwx    1 root root          32 Jul 29 10:14 python3 -> /usr/local/python3.7/bin/pytho3
    [root@localhost ~]# 
    [root@localhost ~]# vim /bin/yum-config-manager 
    [root@localhost ~]# head -n 1 /bin/yum-config-manager
    #!/usr/bin/python2 -tt
    [root@localhost ~]# 
    

    5.2 问题现象-2

    [root@localhost ~]# docker run hello-world
    Unable to find image 'hello-world:latest' locally
    docker: Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).
    See 'docker run --help'.
    [root@localhost ~]# 
    

    问题原因与处理方法:

    [root@localhost ~]# mkdir -p /etc/systemd/system/docker.service.d
    [root@localhost ~]# vim /etc/systemd/system/docker.service.d/http-proxy.conf
    [root@localhost ~]# cat /etc/systemd/system/docker.service.d/http-proxy.conf
    [Service]
    Environment="HTTP_PROXY=http://10.144.1.10:8080/"
    Environment="HTTPS_PROXY=http://10.144.1.10:8080/"
    [root@localhost ~]# 
    [root@localhost ~]# systemctl daemon-reload
    [root@localhost ~]# systemctl restart docker
    

    5.3 问题现象-3

    [root@localhost ~]# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    ubuntu              16.04               2a697363a870        3 months ago        119MB
    ubuntu              18.04               7698f282e524        3 months ago        69.9MB
    hello-world         latest              fce289e99eb9        7 months ago        1.84kB
    [root@localhost ~]# 
    [root@localhost ~]# docker rmi -f 2a697363a870
    Error: No such image: 2a697363a870
    [root@localhost ~]# 
    [root@localhost ~]# docker ps -a
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS  
    

    问题原因与处理方法:

    [root@localhost ~]# systemctl stop docker
    [root@localhost ~]# rm -rf /var/lib/docker
    [root@localhost ~]# systemctl start docker
    [root@localhost ~]# 
    [root@localhost ~]# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    [root@localhost ~]# 
    

    6 - 参考信息

  • 相关阅读:
    程序员累了怎么办?
    vue.js 组件注册实例
    background新增的N个强悍功能!!!
    相思别去问得失
    你说的我正在经历
    千折扇
    盼盼Degenerate——清除浮动的方法
    let 和 var定义变量的区别-盼盼Degenerate
    winform关闭窗体时,给用户友好提示!
    web学习笔记1--HTML
  • 原文地址:https://www.cnblogs.com/anliven/p/11366170.html
Copyright © 2020-2023  润新知