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 就可以訪問了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM