docker命令大全 随笔日记
docker命令大全 筆記
- 1、容器生命周期管理
- 1.1、run
- 1.2、create
- 1.3、exec
- 1.4、start/stop/restart
- 1.5、pause/unpause
- 1.6、kill
- 1.7、rm
- 2、容器操作
- 2.1、ps
- 2.2、inspect
- 2.3、top
- 2.4、attach
- 2.5、event
- 2.6、logs
- 2.7、wait
- 2.8、export
- 2.9、port
- 3、容器rootfs命令
- 3.1、commit
- 3.2、cp
- 3.3、diff命令
- 4、鏡像倉庫
- 4.1、login/logout
- 4.2、push
- 4.3、pull
- 4.4、search
- 5、本地鏡像管理
- 5.1、images
- 5.2、tag
- 5.3、rmi
- 5.4、build
- 5.5、history
- 5.6、save
- 5.7、load
- 5.8、import
- 6、查看信息
- 6.1、info
- 6.2、version
記錄一些自己經常會用到的docker命令,方便自己忘了的時候回來翻閱。
1、容器生命周期管理
1.1、run
docker run :創建一個新的容器并運行一個命令
參數:
- d: 后臺運行容器,并返回容器ID;
- e username=“ritchie”: 設置環境變量;
- i: 以交互模式運行容器,通常與 -t 同時使用;
- P: 隨機端口映射,容器內部端口隨機映射到主機的端口
- p: 指定端口映射,格式為:主機(宿主)端口:容器端口
- t: 為容器重新分配一個偽輸入終端,通常與 -i 同時使用;
- name=“nginx-lb”: 為容器指定一個名稱;
- expose=[]: 開放一個端口或一組端口;
- volume , -v: 綁定一個卷
樣例:
- 使用docker鏡像mysql以后臺模式啟動一個容器,將容器的3307端口映射到主機的3307端口,主機的目錄 /data 映射到容器的 /data,初始密碼為root,容器命名為mysql。
1.2、create
docker create :創建一個新的容器但不啟動它,語法同 docker run。
樣例:
- 使用docker鏡像nginx:latest創建一個容器,并將容器命名為myrunoob
1.3、exec
docker exec :在運行的容器中執行命令
參數:
- d :分離模式: 在后臺運行
- i :即使沒有附加也保持STDIN 打開
- t :分配一個偽終端
樣例:
- 在容器 mysql 中開啟一個交互模式的終端:
- 也可以通過 docker ps -a 命令查看已經在運行的容器,然后使用容器 ID 進入容器。
1.4、start/stop/restart
- docker start :啟動一個或多個已經被停止的容器
- docker stop :停止一個運行中的容器
- docker restart :重啟容器
樣例:
- 啟動已被停止的容器mysql
- 停止運行中的容器mysql
- 重啟容器mysql
1.5、pause/unpause
docker pause :暫停容器中所有的進程。
docker unpause :恢復容器中所有的進程。
樣例:
- 暫停數據庫容器 mysql 提供服務。
- 恢復數據庫容器 mysql 提供服務。
1.6、kill
docker kill :殺掉一個運行中的容器。
參數:
- s :向容器發送一個信號
樣例:
- 殺掉運行中的容器mysql
1.7、rm
docker rm :刪除一個或多個容器。
參數:
-
f :通過 SIGKILL 信號強制刪除一個運行中的容器。
-
l :移除容器間的網絡連接,而非容器本身。
-
v :刪除與容器關聯的卷。
樣例:
- 強制刪除容器mysql,并刪除容器掛載的數據卷,
- 刪除所有已經停止的容器:
2、容器操作
2.1、ps
docker ps : 列出容器
參數:
- a :顯示所有的容器,包括未運行的。
- f :根據條件過濾顯示的內容。
- format :指定返回值的模板文件。
- l :顯示最近創建的容器。
- n :列出最近創建的n個容器。
- no-trunc :不截斷輸出。
- q :靜默模式,只顯示容器編號。
- s :顯示總的文件大小。
列出所有在運行的容器信息。
docker ps
輸出詳情介紹:
- CONTAINER ID: 容器 ID。
- IMAGE: 使用的鏡像。
- COMMAND: 啟動容器時運行的命令。
- CREATED: 容器的創建時間。
- STATUS: 容器狀態。狀態有7種:
- PORTS: 容器的端口信息和使用的連接類型(tcp\udp)。
- NAMES: 自動分配的容器名稱。
列出最近創建的2個容器信息。
docker ps -n 2
列出所有創建的容器ID。
2.2、inspect
docker inspect : 獲取容器/鏡像的元數據。
參數:
- f :指定返回值的模板文件。
- s :顯示總的文件大小。
- type :為指定類型返回JSON。
樣例
- 獲取鏡像mysql:latest的元信息。
- 獲取正在運行的容器mymysql的 IP。
2.3、top
docker top:查看容器中運行的進程信息,支持 ps 命令參數。容器運行時不一定有/bin/bash終端來交互執行top命令,而且容器還不一定有top命令,可以使用docker top來實現查看container中正在運行的進程。
樣例
- 查看容器mysql的進程信息。
2.4、attach
docker attach :連接到正在運行中的容器。要attach上去的容器必須正在運行,可以同時連接上同一個container來共享屏幕(與screen命令的attach類似)。官方文檔中說attach后可以通過CTRL-C來detach,但實際上經過我的測試,如果container當前在運行bash,CTRL-C自然是當前行的輸入,沒有退出;如果container當前正在前臺運行進程,如輸出nginx的access.log日志,CTRL-C不僅會導致退出容器,而且還stop了。這不是我們想要的,detach的意思按理應該是脫離容器終端,但容器依然運行。好在attach是可以帶上–sig-proxy=false來確保CTRL-D或CTRL-C不會關閉容器。
樣例
容器mysql將訪問日志指到標準輸出,連接到容器查看訪問信息。
2.5、event
docker events : 從服務器獲取實時事件
參數:
-
f :根據條件過濾事件;
-
since :從指定的時間戳后顯示所有事件;
-
until :流水時間顯示到指定的時間為止;
樣例:
顯示mysql鏡像中2022年6月13日后的所有事件。
docker events -f image='mysql:latest' --since='2022-06-13'2.6、logs
docker logs : 獲取容器的日志
參數:
- f: 跟蹤日志輸出
- since:顯示某個開始時間的所有日志
- t: 顯示時間戳
- tail:僅列出最新N條容器日志
樣例:
- 持續輸出容器mysql的日志,始終顯示最后10行。
2.7、wait
docker wait : 阻塞運行直到容器停止,然后打印出它的退出代碼。
docker wait mysql2.8、export
docker export : 將文件系統作為一個tar歸檔文件導出到STDOUT。
參數:
- o : 將輸入內容寫到文件。
樣例:
- 將name為mysql的容器按日期保存為tar文件。
2.9、port
docker port :列出指定的容器的端口映射,或者查找將PRIVATE_PORT NAT到面向公眾的端口
樣例:
查看容器mysql的端口映射情況。
3、容器rootfs命令
3.1、commit
docker commit :從容器創建一個新的鏡像。
參數:
- a :提交的鏡像作者;
- c :使用Dockerfile指令來創建鏡像;
- m :提交時的說明文字;
- p :在commit時,將容器暫停。
樣例:
- 將容器4a47c082e672保存為新的鏡像,并添加提交人信息和說明信息。
3.2、cp
docker cp :用于容器與主機之間的數據拷貝。
- 將主機C:/Users/Admin/mysql/data目錄拷貝到容器4a47c082e672 的/data目錄下。
- 將主機C:/Users/Admin/mysql/data目錄拷貝到容器4a47c082e672 中,目錄重命名為data。
- 將容器4a47c082e672 的/data目錄拷貝到主機的C:/Users/Admin/mysql/目錄中。
3.3、diff命令
docker diff : 查看容器里文件結構。
樣例:
- 查看容器mysql的文件結構。
4、鏡像倉庫
4.1、login/logout
docker login : 登陸到一個Docker鏡像倉庫,如果未指定鏡像倉庫地址,默認為官方倉庫 Docker Hub
docker logout : 退出Docker鏡像倉庫,如果未指定鏡像倉庫地址,默認為官方倉庫 Docker Hub
參數:
- u :登陸的用戶名
- p :登陸的密碼
樣例
登陸到Docker Hub,賬號密碼可以自己去官網注冊一個:https://hub.docker.com/
4.2、push
docker push : 將本地的鏡像上傳到鏡像倉庫,要先登陸到鏡像倉庫,即4.1的login要先執行。
參數:
- disable-content-trust :忽略鏡像的校驗,默認開啟
樣例
上傳本地鏡像mysql:latest到鏡像倉庫中。
有點奇怪,居然要打標簽才會上傳成功,圖中的用戶名是自己注冊的dockerhub的用戶名。
4.3、pull
docker pull : 從鏡像倉庫中拉取或者更新指定鏡像
參數:
- a :拉取所有 tagged 鏡像
- disable-content-trust :忽略鏡像的校驗,默認開啟
樣例:
- 從Docker Hub下載mysql最新版鏡像。
第一次下載的時候很慢,500多M等了幾分鐘,下載之后,同樣的pull指令,docker不會再下載一遍,而是更新。
4.4、search
docker search : 從Docker Hub查找鏡像
參數:
- automated :只列出 automated build類型的鏡像;
- no-trunc :顯示完整的鏡像描述;
- f <過濾條件>:列出收藏數不小于指定值的鏡像。
樣例:
- 從 Docker Hub 查找所有鏡像名包含mysql,并且收藏數大于 10 的鏡像
圖中的參數說明:
- NAME: 鏡像倉庫源的名稱
- DESCRIPTION: 鏡像的描述
- STARS: 類似 Github 里面的 star,表示點贊、喜歡的意思。
- OFFICIAL: 是否 docker 官方發布
- AUTOMATED: 自動構建。
5、本地鏡像管理
5.1、images
docker images : 列出本地鏡像。
參數:
- a :列出本地所有的鏡像(含中間映像層,默認情況下,過濾掉中間映像層);
- digests :顯示鏡像的摘要信息;
- f :顯示滿足條件的鏡像;
- format :指定返回值的模板文件;
- no-trunc :顯示完整的鏡像信息;
- q :只顯示鏡像ID。
樣例:
- 查看本地鏡像列表。
- 列出本地鏡像中REPOSITORY為mysql的鏡像列表。
5.2、tag
docker tag : 標記本地鏡像,將其歸入某一倉庫。
樣例:
- 將鏡像 mysql:latest 標記為 tag/mysql:v1 鏡像。
5.3、rmi
docker rmi : 刪除本地一個或多個鏡像。
參數:
- f :強制刪除;
- no-prune :不移除該鏡像的過程鏡像,默認移除;
樣例:
- 強制刪除本地鏡像tag/mysql:v1。
5.4、build
docker build 命令用于使用 Dockerfile 創建鏡像。
參數:
- build-arg=[] :設置鏡像創建時的變量;
- cpu-shares :設置 cpu 使用權重;
- cpu-period :限制 CPU CFS周期;
- cpu-quota :限制 CPU CFS配額;
- cpuset-cpus :指定使用的CPU id;
- cpuset-mems :指定使用的內存 id;
- disable-content-trust :忽略校驗,默認開啟;
- f :指定要使用的Dockerfile路徑;
- force-rm :設置鏡像過程中刪除中間容器;
- isolation :使用容器隔離技術;
- label=[] :設置鏡像使用的元數據;
- m :設置內存最大值;
- memory-swap :設置Swap的最大值為內存+swap,"-1"表示不限swap;
- no-cache :創建鏡像的過程不使用緩存;
- pull :嘗試去更新鏡像的新版本;
- quiet, -q :安靜模式,成功后只輸出鏡像 ID;
- rm :設置鏡像成功后刪除中間容器;
- shm-size :設置/dev/shm的大小,默認值是64M;
- ulimit :Ulimit配置。
- squash :將 Dockerfile 中所有的操作壓縮為一層。
- tag, -t: 鏡像的名字及標簽,通常 name:tag 或者 name 格式;可以在一次構建中為一個鏡像設置多個標簽。
- network: 默認 default。在構建期間設置RUN指令的網絡模式
樣例:
- 使用當前目錄的 Dockerfile 創建鏡像,標簽為mysql:5.7。
Dockerfile的內容
- 通過 -f Dockerfile 文件的位置:
5.5、history
docker history : 查看指定鏡像的創建歷史。
參數:
- H :以可讀的格式打印鏡像大小和日期,默認為true;
- no-trunc :顯示完整的提交記錄;
- q :僅列出提交記錄ID。
樣例:
- 查看本地鏡像mysql/v1的創建歷史。
5.6、save
docker save : 將指定鏡像保存成 tar 歸檔文件。
參數:
- o :輸出的文件。
樣例
- 將鏡像 runoob/ubuntu:v3 生成 my_ubuntu_v3.tar 文檔
5.7、load
docker load : 導入使用 docker save 命令導出的鏡像。
參數:
- input , -i : 指定導入的文件,代替 STDIN。
- quiet , -q : 精簡輸出信息。
樣例:
- 導入鏡像:
5.8、import
docker import : 從歸檔文件中創建鏡像。
參數:
- c :應用docker 指令創建鏡像;
- m :提交時的說明文字;
樣例:
- 從鏡像文件mysql_v1.tar創建鏡像,命名為mysql:v2
6、查看信息
6.1、info
docker info : 顯示 Docker 系統信息,包括鏡像和容器數。
實例
- 查看docker系統信息。
6.2、version
ocker version :顯示 Docker 版本信息。
參數:
- f :指定返回值的模板文件。
樣例:
- 顯示 Docker 版本信息。
- 輸出 docker server 的版本信息。
總結
以上是生活随笔為你收集整理的docker命令大全 随笔日记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机lad指令什么意思,LAD 文件扩
- 下一篇: 计算机芯片制造原理,从沙粒到芯片,原来C