zoukankan      html  css  js  c++  java
  • 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 就可以访问了
  • 相关阅读:
    javaEE中的字符编码问题
    java泛型中<?>和<T>有什么区别?
    list去重,String[]去重,String[]去空,StringBuffer去重,并且以','隔开,list拆分
    字符串转驼峰
    动态生成16位不重复随机数、随机创建2位ID
    POI不同浏览器导出名称处理
    图片转流
    RSA加密解密
    idea 使用在java 包下的ftl、xml 文件编译问题
    深入理解SQL的四种连接-左外连接、右外连接、内连接、全连接
  • 原文地址:https://www.cnblogs.com/qumogu/p/12941915.html
Copyright © 2011-2022 走看看