ubuntu1804安装docker和docker-compose的最新2020详细教程

docker用容器的模式,把各个应用在同一台宿主机上独立分开运营,保持了应用程序的独立性和安全性。同时具备快速部署的特点,迅速成为各大互联网公司宠儿。随之也成为每个开发人员必备的技能之一

一、ubuntu安装docker

  1. 关于docker的软件包名
    • 有关docker,docker.io,docker-engine,lxc-docker 的区别?
      • 其中,RHEL/CentOS 软件源中的 Docker 包名为 docker;
      • Ubuntu 软件源中的 Docker 包名为 docker.io;而很古老的 Docker 源中 Docker 也曾叫做 lxc-docker。
      • 这些都是非常老旧的 Docker 版本,并且基本不会更新到最新的版本,而对于使用 Docker 而言,使用最新版本非常重要。
      • 另外,17.04 以后,包名从 docker-engine 改为 docker-ce,因此从现在开始安装,应该都使用 docker-ce 这个包。
    • 关于docker 目前设计的版本 docker-CE 和 docker-EE
      • docker-ce 是社区版本是完全免费的;从1.XX版本升级到17.XX版本上的风险是非常小的;docker-ce 还区分两个版本edge和stable版本;
      • dge 版本是每个月发布一次,喜欢尝新的用户可以下载此版本,因此对于安全和错误只能当月获取与修复
      • stable 版本是每个季度更新一次,也就是说是稳定版本;
      • docker-ee 版本是由公司支持,可在经过认证的操作系统和云提供商中使用,并可运行来自Docker Store的、经过认证的容器和插件。对于企业则提供了一下收费的高级特性。
  2. ubuntu上apt里版本
    • 使用apt-cache show docker 是1.x的 /apt-cache show docker.io 版本都是18.xx的
    • apt-cache show docker-ce 没有结果,需要手动添加安装源
  3. 添加docker-ce的安装源
    • 如果有旧版本的docker需要先卸载,会影响运行。sudo apt remove docker docker-engine docker.io containerd runc
    • 安装相关的依赖包和工具,我们需要https来安装哦
    sudo apt install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common
    
    • 添加docker官方网站的秘钥,这个nginx的安装一样,让ubuntu放心使用它的源
      `` sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - #注意最后的"-"别少了
    • 确认一下秘钥
    sudo apt-key fingerprint 0EBFCD88
    #如果下一下输出,说明添加成功
    pub   rsa4096 2017-02-22 [SCEA]
          9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
    uid           [ unknown] Docker Release (CE deb) <docker@docker.com>
    sub   rsa4096 2017-02-22 [S]
    
    • 添加docker稳定版仓库到ubuntu安装源
    sudo add-apt-repository \
       "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
    $(lsb_release -cs) \
    stable"
    
  4. ubuntu安装最新的docker社区版
    • 系统更新
      sudo apt update
    • 查询docker的版本信息
      sudo apt-cache madison docker-ce 或者 apt-cache show docker-ce | grep Version
    • 最新的稳定版是Version: 5:19.03.93-0ubuntu-bionic
    • 执行安装命令
      sudo apt install docker-ce docker-ce-cli containerd.io
    • 安装制定版本的docker,例如上面的:5:19.03.93-0ubuntu-bionic
      sudo apt install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
    • 访问过去网速低的,可以参考实用清华大学的安装源,参考
  5. 确认是否安装成功
    • 输入命令
      sudo docker --version
    • 如果安装成功看到以下输出
      Docker version 19.03.9, build 9d988398e7

二、docker的简单实用

  1. 下载官方镜像
    • 可以先到docker官网查找镜像,网站
    • 实用docker pull 镜像名:tag 下载镜像,如果不输入tag默认是latest
    sudo docker pull redis:6.0.3    #下载最新redis6
    
  2. 查看镜像
    • sudo docker images
    • 可以看到刚刚下载的redis tag是6.0.3,时间和大小
  3. 启动镜像
    • 实用启动命令
    sudo docker run -itd --name redis6 -p 6379:6379 redis:6.0.3
    # -i 表示允许你对容器内的标准输入 (STDIN) 进行交互。
    # -t 表示制定一个伪终端,一般接/bin/bash 方便exec进入容器后,输入执行命令
    # -d 表示后台运行,
    # --name 表示容器的名称,后面通过容器名称来,启动,停止,重启容器,名字需要唯一
    # -p 表示端口映射,前一个数是宿主机的开端口,后一个数是容量里面的端口,可以不一样
    # 最后是镜像名称和tag
    # 更多帮助,docker run --help
    
  4. 查看容器
    • 查看所有运行容器 sudo docker ps
    • 查看所有容器包含未运行的 sudo docker ps -a
  5. 停止/重启/启动 容器
    • docker stop/restart/start redis6 #最后是容器名,也可以用ps查询的容器ID
  6. 进入容器里面
    • sudo docker exec -it <容器名> /bin/bash
  7. 删除容器
    • docker rm redis6 #最后是容器名,也可以用ps查询的容器ID

三、docker-compose的安装

  1. docker-compose简介(以下简称dc)
    • dc是一套管理docker的工具,是用python编写的,实用yml作为配置文件
    • dc的最新的发布版本网址https://github.com/docker/compose/releases
    • docker-compose当下最新是1.25.5
  2. 可以通过apt install 来安装,但是版本太旧是 Version: 1.17.1-2
  3. 实用curl安装
    sudo curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
    chmod +x /usr/local/bin/docker-compose   #赋予可执行文件
    
  4. 简称是否安装成功
    • sudo docker-compose --version
    • 如果输出如下说明安装成功, docker-compose version 1.25.5, build 8a1c60f6

四、docker-compose的实用

  1. 配置文件docker-compose.yml详解
#版本号对象docker的版本,对应关系,请参考官网https://docs.docker.com/compose/compose-file/
version: '3.8'
services:    
    mongodb: #根据你自己的需要设定名字
    #使用指定目录下的Dockerfile进行构建
    build: .
    #相当于docker run命令的-p参数,用于声明对外开放的端口
    container_name: my_app  #声明构建容器的名称,docker-compose start和stop命令可以使用
    ports:
        - "5000:5000" 
       - "8010:80"
  1. docker-compose 常用命令 需要和docker-compose.yml 在同一目录下执行

    • docker-compose up -d #启动yml文件中所有的镜像
    • docker-compose restart #重启yml文件中所有的镜像
    • docker-compose down #关闭yml文件中所有的镜像
    • 注意:如果修改了yml文件或.env文件,需要先down再up才会生效,restart无法生效
  2. 配置一个mongodb的compose文件

version: '3.8'
networks:
  mynet:
    external: true
services:
  mongodb:
    image: mongo:4.2.6
    networks:
      - mynet
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
      - /data/mongo_cluster/2727/db:/data/db
      - /data/mongo_cluster/2727/opt:/opt
    container_name: mongo_main
    environment:
      - MONGO_INITDB_ROOT_USERNAME=qumogu
      - MONGO_INITDB_ROOT_PASSWORD=Qumogu@1604
    command: --auth --bind_ip 0.0.0.0
    ports:
      - 2727:27017
    restart: always
    logging:
      driver: json-file
      options:
        max-file: '2'
        max-size: 100m

  1. 启动docker的容器
    • 启动前需要先创建网络 参考文档
      • docker network create mynet --driver bridge
      • docker network ls #显示已创建的网络
    • docker-compose up -d 就可以访问了
posted @ 2020-05-23 12:04  千年寒冰火  阅读(2044)  评论(0编辑  收藏  举报