• Linux下安装Docker


    一、前言-为什么主讲CentOS安装Docker?

    Ubuntu、RHEL、Debian、Arch可以直接参考 Docker中文网菜鸟教程
    CentOS教程中菜鸟教程将不建议用于生产环境的便捷脚本排序较高;docker中文网推荐在CentOS下创建一个ubuntu的虚拟机并在里面运行docker……
    故本文主讲在CentOS 7下安装Docker。资料整理自 Docker官网菜鸟教程
    windows下启动Docker Desktop自带的kubernetes比较多坑,这篇比较完整https://www.jianshu.com/p/e5c056baa8ab

    二、系统要求

    CentOS 7 或者 CentOS 8
    必须启用centos-extras库。如果被禁用了,则需要重新启用它。

    # 禁用
    $ yum-config-manager --disable centos-extras
    # 启用
    $ yum-config-manager --enable centos-extras
    

    三、卸载旧版本

    旧版 Docker引擎称为 docker 或 docker-engine,现 Docker引擎软件包称为docker-ce,为避免冲突卸载旧版docker依赖,新版可以直接安装升级

    # 卸载旧版docker,防止冲突
    $ sudo yum remove docker 
                      docker-client 
                      docker-client-latest 
                      docker-common 
                      docker-latest 
                      docker-latest-logrotate 
                      docker-logrotate 
                      docker-engine
    # 卸载新版docker并删除文件,新版的版本升级不需要卸载
    $ sudo yum remove docker-ce docker-ce-cli containerd.io
    # 主机上的映像,容器,卷或自定义配置文件不会自动删除,需要自行删除
    $ sudo rm -rf /var/lib/docker
    

    四、安装方式

    1. 存储库安装,官方推荐,大部分用户使用,简便

    # yum-utils 提供 yum-config-manager指令,device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2
    $ sudo yum install -y yum-utils
         device-mapper-persistent-data 
         lvm2
    $ sudo yum-config-manager 
        --add-repo 
        https://download.docker.com/linux/centos/docker-ce.repo
    
    # 可选 启用nightly(最新)存储库,可能需要克服一些不稳定和bug
    # sudo yum-config-manager --enable docker-ce-nightly
    # 可选 启用test(测试)存储库
    # sudo yum-config-manager --enable docker-ce-test
    
    # 添加阿里云仓库加速下载
    $ sudo yum-config-manager 
        --add-repo 
        http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
    # 安装最新版docker引擎和容器
    $ sudo yum install docker-ce docker-ce-cli containerd.io
    # 可选 选择查看可选版本
    # yum list docker-ce --showduplicates | sort -r
    # 可选 安装指定版本
    # sudo yum install docker-ce-18.09.1 docker-ce-cli-18.09.1 containerd.io
    
    # 如果启用了多个 Docker 仓库,则在未在 yum install 或 yum update 命令中指定版本的情况下,进行的安装或更新将始终安装最高版本,这可能不适合您的稳定性需求。
    # Docker已安装但尚未启动。docker创建该组,但没有用户添加到该组
    # 可选 添加当前用户到docker组,不再需要每次sudo
    # sudo usermod -aG docker $USER
    
    # 启动docker
    $ sudo systemctl start docker
    # 运行hello-world镜像以验证
    $ sudo docker run hello-world
    

    2. 软件包安装。下载.npm 手动安装。每次要升级Docker引擎时,都需要下载一个新文件

      转到https://download.docker.com/linux/centos/ 并选择您的CentOS版本。然后浏览x86_64/stable/Packages/ 并下载您要安装的Docker版本的.rpm文件。
    
    # 创建目录并下载
    mkdir -p /usr/local/docker
    cd /usr/local/docker
    wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-cli-19.03.9-3.el7.x86_64.rpm -O package.rpm
    
    # 安装docker引擎 /usr/local/docker路径可自由修改
    $ sudo yum install /usr/local/docker/package.rpm
    # 启动与验证
    $ sudo systemctl start docker
    $ sudo docker run hello-world
    

    3. 使用便捷脚本

    不建议在生产环境中使用这些脚本,并且在使用它们之前,您应该了解潜在的风险:

    • 脚本需要运行root或具有sudo特权。因此,在运行脚本之前,应仔细检查和审核脚本。

    • 这些脚本尝试检测Linux发行版和版本,并为您配置软件包管理系统。此外,脚本不允许您自定义任何安装参数。从Docker的角度或您自己组织的准则和标准的角度来看,这可能导致不支持的配置。

    • 这些脚本将安装软件包管理器的所有依赖项和建议,而无需进行确认。根据主机的当前配置,这可能会安装大量软件包。

    • 该脚本未提供用于指定要安装哪个版本的Docker的选项,而是安装了在“ edge”通道中发布的最新版本。

    • 如果已使用其他机制将Docker安装在主机上,请不要使用便捷脚本。

      警告!在本地运行它们之前,请务必检查从Internet下载的脚本!
      
    # 官方脚本
    $ curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
    # 国内daocloud脚本
    $ curl -sSL https://get.daocloud.io/docker | sh
    

    五、Docker Compose工具

      Compose是用于定义和运行多容器Docker应用程序的工具。通过Compose,您可以使用YAML文件来配置应用程序的服务。然后,只要使用一个命令,就可以从配置中创建并启动所有服务。
    
    # 前往https://github.com/docker/compose/releases查看选择版本
    # 下载1.26.1/docker-compose-Linux-x86_64到/usr/local/bin/中,并指定名字为docker-compose
    $ wget https://github.com/docker/compose/releases/download/1.26.1/docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
    # 赋予文件可执行权限
    $ sudo chmod +x /usr/local/bin/docker-compose
    # 添加软连接
    $ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
    # 验证安装是否完成
    $ docker-compose --version
    

    如果要从Compose 1.2或更早版本进行升级,请在升级Compose之后删除或迁移现有容器。这是因为从1.3版开始,Compose使用Docker标签来跟踪容器,并且需要重新创建容器以添加标签。
    如果Compose检测到创建的没有标签的容器,它将拒绝运行,这样您就不会最终获得两组标签。如果要继续使用现有容器(例如,因为它们具有要保留的数据量),则可以使用Compose 1.5.x通过以下命令迁移它们:

    $ docker-compose migrate-to-labels

    另外,如果您不担心保留它们,可以将其删除。撰写只是创建新的。
    $ docker container rm -f -v myapp_web_1 myapp_db_1...

    如果需要卸载
    $ sudo rm /usr/local/bin/docker-compose

    该工具用户手册,参考菜鸟教程 Docker Compose

    六、国内加速

    $ sudo vi /etc/docker/daemon.json
    

    添加文件如下

    {
      "registry-mirrors": ["http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"],
      "log-driver":"json-file",
      "log-opts": {"max-size":"500m", "max-file":"3"}
    }
    
    # 重启docker生效
    systemctl daemon-reload
    systemctl restart docker.service
    

    七、修改默认配置,如镜像存储位置

    centos7 修改docker.service
    参考Docker如何修改默认镜像存储位置

    八、设置开机自启

    # centos7下命令行直接执行
    systemctl enable docker
    # centos6下,编辑/etc/rc.local文件追加
    service docker start
    
  • 相关阅读:
    jQuery实现DropDownList(MVC)
    解决MVC应用程序数据重复加载问题
    MVC应用程序使用jQuery接收Url的参数
    openstack上创建vm实例后,状态为ERROR问题解决
    分布式监控系统Zabbix--完整安装记录-批量添加主机和自动发现端口
    LInux下设置账号有效时间 以及 修改用户名(同时修改用户组名和家目录)
    Rsync+Inotify实时同步环境部署记录
    Shell+Curl监控网站页面访问状态,利用SendEmail发邮件通知
    Shell脚本字符串匹配及日常命令工具
    分布式监控系统Zabbix-3.0.3-完整安装记录(6)-微信报警部署
  • 原文地址:https://www.cnblogs.com/hyry/p/13223541.html
Copyright © 2020-2023  润新知