8、docker的經常使用命令

Docker經常使用命令

1.1 存儲鏡像

若是要導出鏡像到本地文件,能夠使用 docker save 命令。php

docker save -o log_v140.tar docker.io/vmware/harbor-log:v1.4.0
docker save ID |gzip > 123.tgz(這個5+1)

執行完將docker.io/vmware/harbor-log:v1.4.0這個鏡像保存於log_v140.tar這個文件中html

1.2 導入鏡像

若要將save指令保存的鏡像文件導入,能夠使用 docker load 從導出的本地文件中再導入到本地鏡像庫,例如python

$ sudo docker load --input docker.io/vmware/harbor-log:v1.4.0mysql

sql

$ sudo docker load < docker.io/vmware/harbor-log:v1.4.0docker

這將導入鏡像以及其相關的元數據信息(包括標籤等)。thinkphp

1.3 運行鏡像

1) 後臺運行鏡像並映射80端口到宿主機的80端口shell

  docker run -d -p 80:80 medicean/vulapps:b_bash_shellshock1apache

2) 運行鏡像進行交互命令行(運行完命令退出後,容器會關閉)bash

docker run -it medicean/vulapps:t_thinkphp_1 /bin/bash

前面的宿主的端口,後面爲虛擬機中端口

更多參數請自行查看docker run –h

1.4 文件交互

1) 宿主機向容器中發送文件   (rz)

docker cp  ~/test.txt    容器id:/var/www/html/

    宿主機文件        容器路徑

2) 容器向宿主機發送文件     (sz)

docker cp 容器id:/var/www/html/test.txt     /tmp/

   容器內文件    宿主機路徑

1.5 關閉容器

1) 中止容器,保存容器狀態,docker start開始後內部狀態不變,相似於虛擬機中的暫停

   docker stop 容器ID

2) 終結容器,直接殺死當前容器,docker start開始後內部爲全新狀態

docker kill 容器ID

1.6 查看容器

docker ps 顯示當前處於運行狀態容器

docker ps –a 顯示服務器內所有容器

docker ps –aq 顯示所有容器且只顯示容器ID

1.7 查看鏡像

docker images 顯示本機docker鏡像

docker images –a 顯示本機所有鏡像,包含中間鏡像(多重構建時經常使用)

docker images aq 顯示所有鏡像且只顯示鏡像ID

1.8 刪除容器

docker rm 容器ID  刪除處於關閉狀態的容器

docker rm –f 容器ID 強制刪除容器

docker rm $(docker ps -aq) 刪除本機全部處於關閉狀態的容器

1.9 刪除鏡像

docker rmi 鏡像名[:標籤]   刪除未被用做構建容器的鏡像

docker rmi –f 鏡像名[:標籤] 強制刪除鏡像

docker rmi $(docker images -aq) 刪除本機全部未被使用鏡像

1.10 提交容器

docker commit [–a 做者信息] 容器ID 鏡像名

將容器保存爲鏡像

:docker commit –a 「rcsec」  a94…  wals.culb/library/XXX:…

ID開頭爲a94的容器保存爲名爲wals.club/library/XXX:…的鏡像

1.11 命名鏡像

docker tag 鏡像名[:標籤鏡像名[:標籤]

將一個鏡像命名爲另外一鏡像名

1.12 進入運行容器

1) docker exec –it 容器ID 執行命令

docker exec –it 容器ID /bin/bash

阻塞當前容器運行命令並執行/bin/bash進入容器命令行

2) docker attach 容器ID

阻塞當前容器守護進程並執行默認終端

能夠經過docker inspect 容器ID Entrypoint項中查看

運行attach命令即阻塞sh文件,可能會致使容器中止

1.13 登錄倉庫

docker login 倉庫地址  

//登錄對應倉庫,須要手動輸入用戶及密碼

docker login –u 用戶名 –p 密碼 倉庫地址  

//指定用戶名,密碼登錄對應倉庫

1.14 下拉鏡像

docker pull 鏡像名  

//默認從dockerhub下載鏡像

1.15 上傳鏡像

docker push 鏡像名

//默認向Dockerhub上傳鏡像

1.16 構建鏡像

在容器裏新建start.sh

#!/bin/bash
chmod -R a+x /var/lib/mysql
service mysql start
service apache2 restart
service ssh restart
/usr/bin/tail -f /dev/null

在家目錄新建Dockerfile

 

docker build –t 鏡像名 [--no-cache=true]  Dockerfile文件絕對路徑

常見命令說明:docker build –t php:5.5-apache-mysql –no-cache=true .

最後一個參數文件路徑使用 . 含義爲在當前目錄下使用名字爲Dockerfile的文件進行鏡像構建。

經常使用阻塞進程:

/usr/bin/tail –f /dev/null 利用/dev/null黑洞特性 tail命令查詢該文件導致進程阻塞

while true; do sleep 1; done ; 利用while true循環進行阻塞

Dockerfile書寫詳細說明:

https://docs.docker.com/engine/reference/builder/#predefined-args

相關文章
相關標籤/搜索