• 一、安装Docker CE


    卸载旧版本

    较旧版本的Docker被称为dockerdocker-engine。如果已安装这些,需要卸载以及相关的依赖项。

    $ sudo yum remove docker 
                      docker-client 
                      docker-client-latest 
                      docker-common 
                      docker-latest 
                      docker-latest-logrotate 
                      docker-logrotate 
                      docker-selinux 
                      docker-engine-selinux 
                      docker-engine
    

    安装Docker CE

    您可以根据需要以不同方式安装Docker CE:

    • 大多数用户设置Docker的仓库并从中进行安装,以便于安装和升级任务。这是推荐的方法。
    • 有些用户下载RPM软件包并手动安装并完全手动管理升级。这在没有访问互联网的系统上安装Docker的情况下非常有用。
    • 在测试和开发环境中,一些用户选择使用自动便捷脚本来安装Docker。

    使用仓库安装

    在新主机上首次安装Docker CE之前,需要设置Docker仓库。之后,您可以从仓库安装和更新Docker

    设置存储库

    1. 安装所需的包。

      yum-utils提供yum-config-manager实用程序,devicemapper存储驱动程序需要device-mapper-persistent-datalvm2

      $ sudo yum install -y yum-utils 
        device-mapper-persistent-data 
        lvm2
      
    2. 设置稳定存储库。

      使用以下命令设置稳定存储库

      $ sudo yum-config-manager 
          --add-repo 
          https://download.docker.com/linux/centos/docker-ce.repo
      

      可选:启用edgetest存储库。这些存储库包含在上面的docker.repo文件中,但默认情况下处于禁用状态。您可以将它们与稳定存储库一起启用。

      $ sudo yum-config-manager --enable docker-ce-edge
      
      $ sudo yum-config-manager --enable docker-ce-test
      

      通过使用--disable标志运行yum-config-manager命令来禁用edgetest仓库。要重新启用,使用--enable标志。以下命令禁用edge仓库。

      $ sudo yum-config-manager --disable docker-ce-edge
      

      注意:从Docker 17.06开始,稳定版本也会被推送到边缘并测试存储库。

    安装DOCKER CE

    1. 安装最新版本

      安装最新版本Docker CE,或转到下一步安装特定版本:

      $ sudo yum install docker-ce
      

      如果提示接受GPG密钥,请确认指纹符合060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35,如果符合,则接受该指纹。

      运行以上命令安装后,Docker已安装但尚未启动。并已创建docker组,但未向该组添加任何用户。

    2. 安装特定版本

      • 要安装特定版本Docker CE,可列出repo中的可用版本,然后选择并安装

        $ yum list docker-ce --showduplicates | sort -r
        docker-ce.x86_64  18.06.1.ce-3.el7         docker-ce-stable
        docker-ce.x86_64  18.06.0.ce-3.el7         docker-ce-stable
        docker-ce.x86_64  18.03.1.ce-1.el7.centos  docker-ce-stable
        docker-ce.x86_64  18.03.0.ce-1.el7.centos  docker-ce-stable
        

        返回的列表取决于启用的仓库,并且特定于您的CentOS版本(在此示例中以.el7后缀表示CentOS7)。

      • 通过其完全限定的包名称安装特定版本

        包名称(docker-ce)加上版本字符串(第2列),中间用连字符( - )分隔,

        例如,docker-ce-18.06.1.ce

        $ sudo yum install docker-ce-18.06.1.ce
        

        运行以上命令安装后,Docker已安装但尚未启动。并已创建docker组,但未向该组添加任何用户。

    启动测试Docker

    1. 启动Docker

      $ sudo systemctl start docker
      
    2. 通过运行hello-world映像验证是否正确安装了docker。

      $ sudo docker run hello-world
      

      此命令下载hello-world镜像并在容器中运行它。当容器运行时,它会打印消息并退出。

      如果网络下载失败,可能需要配置国内加速器,或者需要使用代理连接,可以通过下面的Linux安装后配置进行配置

    升级DOCKER CE

    要升级Docker CE,选择特定版本安装新版本或选择安装最新版本。

    使用包安装

    如果您无法使用Docker存储库来安装Docker,可以下载适用于您的发行版的.rpm文件并手动安装。每次要升级Docker时都需要下载新文件。

    安装Docker CE

    • CentOS

      1. 转到https://download.docker.com/linux/centos/7/x86_64/stable/Packages/并下载要安装的Docker版本的.rpm文件。

        注意:要安装edgetest包,请将上述URL中的单词stable更改为edgetest

      2. 安装Docker CE,将下面的路径更改为Docker软件包的路径。

        Docker的``docker.rpm`包在用户主目录下

        $ sudo yum install ~/docker.rpm
        

        Docker已安装但尚未启动。已创建docker组,但未向该组添加任何用户。

    升级DOCKER CE

    要升级Docker CE,请下载较新的软件包文件并重复安装过程,使用yum -y upgrade,而不是yum -y install,并指向新软件包。

    卸载 Docker CE

    卸载Docker包:

    $ sudo yum remove docker-ce
    

    主机上的图像,容器,卷或自定义配置文件不会自动删除。

    要删除所有图像,容器和卷:

    $ sudo rm -rf /var/lib/docker
    

    二、Docker安装后配置

    HTTP/HTTPS代理

    如果您使用HTTPHTTPS代理服务器,例如在公司设置中,您需要在Docker systemd service文件中添加此配置。

    1. 为Docker服务创建一个 systemd多级目录:

      $ sudo mkdir -p /etc/systemd/system/docker.service.d
      
    2. 创建一个名为/etc/systemd/system/docker.service.d/http-proxy.conf的文件。添加HTTP_PROXY环境变量:

      [Service]
      Environment="HTTP_PROXY=http://username:password@0.0.0.1:80/"
      

      或者,如果您在HTTPS代理服务器后面,创建一个名为/etc/systemd/system/docker.service.d/https-proxy.conf的文件,添加HTTPS_PROXY环境变量:

      [Service]
      Environment="HTTPS_PROXY=https://username:password@0.0.0.1:80/"
      
    3. 如果您有自己的私有Docker仓库,而无需代理,您可以通过NO_PROXY环境变量指定它们:

      [Service]    
      Environment="HTTP_PROXY=http://username:password@0.0.0.1:80/" "NO_PROXY=localhost,127.0.0.1,docker-registry.somecorporation.com"
      

      或者, 如果您在 HTTPS 代理服务器后面添加:

      [Service]    
      Environment="HTTPS_PROXY=https://username:password@0.0.0.1:80/" "NO_PROXY=localhost,127.0.0.1,docker-registry.somecorporation.com"
      
    4. 刷新更改:

      $ sudo systemctl daemon-reload
      
    5. 重启Docker:

      $ sudo systemctl restart docker
      
    6. 验证配置已经加载:

      $ systemctl show --property=Environment docker
      Environment=HTTP_PROXY=http://username:password@0.0.0.1:80/
      

      或者:

      $ systemctl show --property=Environment docker
      Environment=HTTPS_PROXY=https://username:password@0.0.0.1:80/
      

    以非root身份管理Docker

    Docker daemon绑定到Unix socket而不是TCP端口。默认情况下,Unix socket由用户root拥有,而其他用户只能使用sudo访问它。 Docker daemon始终以root用户身份运行。

    如果您不想在docker命令前加上sudo,可以创建一个名为dockerUnix组并向其添加用户。当Docke启动时,它会创建一个可由docker组成员访问的Unix socket

    警告

    docker组授予与root用户等效的权限。
    有关这将如何影响系统安全性的详细信息,请参阅Docker Daemon Attack Surface

    要创建docker组并添加您的用户:

    1. 创建docker组

      $ sudo groupadd docker
      
    2. 将您的用户添加到docker组

      $ sudo usermod -aG docker $USER
      
    3. 注销并重新登录,以便您的组成员身份生效。

    4. 验证您是否可以在没有sudo的情况下运行docker命令.

      $ docker run hello-world
      

      如果容器运行,它会打印消息并退出,说明设置生效

      如果在将用户添加到docker组之前最初使用sudo运行Docker CLI命令,则可能会看到以下错误,这表示由于sudo命令而创建的〜/.docker/目录的权限不正确。

      WARNING: Error loading config file: /home/user/.docker/config.json -
      stat /home/user/.docker/config.json: permission denied
      

      要解决此问题,请删除〜/.docker/目录(它会自动重新创建,但任何自定义设置都将丢失),或使用以下命令更改其所有权和权限:

      $ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
      $ sudo chmod g+rwx "$HOME/.docker" -R
      

    镜像加速

    由于Docker Hub的服务器在国外,镜像的下载速度比较慢,可以使用国内提供的免费镜像服务,国内免费镜像服务有阿里云和DaoCloud等有提供:

    • 阿里云

      1. 注册登录后,进入控制台,在产品与服务中搜索容器镜像服务进入,在镜像加速器有阿里云提供给个人的加速器地址
      2. 按照操作文档选择对应的服务器类型操作,
    • DaoCloud

      1. 注册登录后,点击加速器图标

      2. 进入页面后,复制内容到Shell终端运行

    随系统启动而启动

    • systemd

      开启随系统启动

      $ sudo systemctl enable docker
      

      关闭随系统启动,改用disable。

      $ sudo systemctl disable docker
      

      查看状态

      $ sudo systemctl is-enabled docker
      
  • 相关阅读:
    smarty对网页性能的影响
    php-fpm正在生成页面时,浏览器刷新后,php-fpm会退出吗?
    为什么日志记录到别的目录了?
    一个空格引发的bug
    linux内核--页高速缓存
    radix树
    linux内核--用户态内存管理
    linux内核--内核内存管理
    linux内核--软中断与tasklet
    linux内核--几个上下文(context)
  • 原文地址:https://www.cnblogs.com/zenghi-home/p/10070980.html
Copyright © 2020-2023  润新知