Docker 語法與操作整理

  • 雖然 CentOS 7 內建有 Docker 但是我大部分的環境還是 CentOS 6, 所以先以現有環境安裝測試 Docker 是否真的如傳說中的神奇
  • 需要先安裝 EPEL
    rpm -Uvh http://mirror01.idc.hinet.net/EPEL/6/x86_64/epel-release-6-8.noarch.rpm
  • 安裝 docker-io
    yum install docker-io
  • 安裝語法

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    sudo apt-get install docker-ce=5:19.03.14~3-0~ubuntu-focal docker-ce-cli=5:19.03.14~3-0~ubuntu-focal containerd.io -y

service docker start
chkconfig docker on
  • CentOS
    docker pull centos
  • Fedora
    docker pull fedora
    docker run -i -t fedora /bin/bash
    • 輸入 exit 就可以結束與離開
    • 輸入 CTRL-p + CTRL-q 可以離開 (docker container 繼續在背景執行)
  • 找目前 Internet 已存在的 Image Template docker search <keyword>
    docker search ubuntu
  • 安裝 Image Template docker pull <img tmp name>
    docker pull centos
  • 列出目前已安裝的 Image Template docker images
    docker images
  • 刪除不需要的 Image Template docker rmi <IMAGE ID>
    docker rmi 2a973533a1af
  • 建立自己的 Image Template docker commit -m=“<Message>” -a=“<Author Name>” <CONTAINER ID> <REPOSITORY>:<TAG>
    docker commit -m="Add trysrvtool and pingserver" -a="Jonathan Tsai" c299814447ed tryweb/tryimg01:v1
  • 對 Image Template 增加 TAG docker tag <IMAGE ID> <REPOSITORY>:<New TAG>
    docker tag dc30d39a01da tryweb/phplist:latest
  • 將 Image Template 存成檔案 docker save <img tmp name> > <img tmp name>.tar Exp. busybox

    docker save busybox > busybox.tar

  • 將 Image Template 檔案匯入 docker load –input <img tmp name>.tar Exp. busybox

    docker load --input busybox.tar

  • 顯示 Images 的 Digest

    docker images --digests

  • 顯示特定格式 Images 資訊 Exp. iiiorg/devops-api

    docker images iiiorg/devops-api --format "{{.ID}}: {{.Repository}}:{{.Tag}} {{.Digest}}" | grep devops-api:1

    結果顯示如下:

    fcfbe89fe52a: iiiorg/devops-api:1 sha256:d6ce6ffa86c37b387cc07ac5cecb92fd97457b96b155cc2692658312be1b8ea5

  • 查詢有哪些 docker container 存在 docker ps –all
    docker ps --all

    在 STATUS 欄位可以看到是否運中還是離開(Exited)狀態

  • 切換到運行中的 docker container docker attach <CONTAINER ID> or <NAMES>
    docker attach silly_hawking
  • 啟動離開(Exited)狀態的 docker container docker start <CONTAINER ID> or <NAMES>
    docker start 2522259349a9
  • 查看 docker container 的 Console 訊息 docker logs <CONTAINER ID> or <NAMES>
    docker logs 2522259349a9
  • 查看 docker container 的詳細資訊 docker inspect <CONTAINER ID> or <NAMES>
    docker inspect 2522259349a9
    docker inspect -f "{{ .NetworkSettings }}" 2522259349a9
  • 備份 docker container
     
  • 關閉啟動中的 docker container (成為離開狀態)docker stop <CONTAINER ID> or <NAMES>
    docker stop 2522259349a9
  • 刪除已關閉(離開狀態)的 docker containerdocker rm <CONTAINER ID> or <NAMES>
    docker rm 2522259349a9
  • 查看 image 內的相關訊息 docker run -i -t <image> <shell cmd>

    docker run -i -t php:7.0.33-cli-jessie bash

  • tech/docker.txt
  • 上一次變更: 2021/10/14 14:15
  • jonathan