Docker 常用命令


Docker 目錄

本文原始地址:https://sitoi.cn/posts/51856.html

資源匯總

類型 名稱 地址
官方網站 docker 官網 http://www.docker.com
官方教程 Docker windows 入門 https://docs.docker.com/windows
官方教程 Docker Linux 入門 https://docs.docker.com/linux
官方教程 Docker mac 入門 https://docs.docker.com/mac
官方教程 Docker 用戶指引 https://docs.docker.com/engine/userguide
官方博客 Docker 官方博客 http://blog.docker.com
官方鏡像 Docker Hub https://hub.docker.com
官方開源 Docker 開源 https://www.docker.com/open-source
中文資源 Docker 中文網站 https://www.docker-cn.com
中文資源 Docker 安裝手冊 https://docs.docker-cn.com/engine/installation
國內鏡像 網易加速器 http://hub-mirror.c.163.com
國內鏡像 官方中國加速器 https://registry.docker-cn.com
國內鏡像 ustc的鏡像 https://docker.mirrors.ustc.edu.cn
國內鏡像 daocloud https://www.daocloud.io/mirror

Docker 常用命令

基礎命令

info

顯示 Docker 系統信息,包括鏡像和容器數

docker info

version

顯示 Docker 版本信息

docker version

從Docker Hub查找鏡像

docker search [OPTIONS] TERM

OPTIONS說明

參數 解釋
--automated 只列出 automated build類型的鏡像
--no-trunc 顯示完整的鏡像描述
-s 列出收藏數不小於指定值的鏡像

樣例

docker search mssql

login

登陸到一個 Docker 鏡像倉庫

docker login

樣例

docker login -u 用戶名 -p 密碼

logout

登出一個 Docker 鏡像倉庫

docker logout

pull

從鏡像倉庫中拉取或者更新指定鏡像

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

OPTIONS說明

參數 解釋
-a 拉取所有 tagged 鏡像
--disable-content-trust 忽略鏡像的校驗,默認開啟

樣例

docker pull hub.c.163.com/library/mysql:latest

push

將本地的鏡像上傳到鏡像倉庫,要先登陸到鏡像倉庫

docker pull NAME[:TAG|@DIGEST]

樣例

docker push myapache:v1

本地鏡像管理

images

列出本地鏡像

docker images [OPTIONS] [REPOSITORY[:TAG]]

OPTIONS說明

參數 解釋
-a 列出本地所有的鏡像(含中間映像層,默認情況下,過濾掉中間映像層)
--digests 顯示鏡像的摘要信息
-f 顯示滿足條件的鏡像
--format 指定返回值的模板文件
--no-trunc 顯示完整的鏡像信息
-q 只顯示鏡像ID

樣例

docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
hub.c.163.com/library/mysql latest 9e64176cd8a2 9 months ago 407 MB

各個項目說明:

項目 解釋
REPOSITORY 表示鏡像的倉庫源
TAG 鏡像的標簽
IMAGE ID 鏡像ID
CREATED 鏡像創建時間
SIZE 鏡像大小

同一倉庫源可以有多個 TAG,代表這個倉庫源的不同個版本,如 ubuntu 倉庫源里,有 15.10、14.04 等多個不同的版本,我們使用 REPOSITORY:TAG 來定義不同的鏡像
所以,我們如果要使用版本為 15.10 的 ubuntu 系統鏡像來運行容器時,命令如下:docker run -it ubuntu:15.10 /bin/bash
如果要使用版本為 14.04 的 ubuntu 系統鏡像來運行容器時,命令如下:docker run -it ubuntu:14.04 /bin/bash

rmi

刪除本地一個或多少鏡像

docker rmi [OPTIONS] IMAGE

OPTIONS說明

參數 解釋
-f 強制刪除
--no-prune 不移除該鏡像的過程鏡像,默認移除

刪除單個鏡像

docker rmi 9e6

刪除 id 為 none 的鏡像

docker rmi $(docker images | grep "^<none>" | awk "{print $3}")

強制刪除id為 none 的鏡像

docker rmi -f $(docker images | grep "^<none>" | awk "{print $3}")

刪除全部鏡像

docker rmi $(docker images -q)

強制刪除全部鏡像

docker rmi -f $(docker images -q)

build

使用Dockerfile創建鏡像

docker build [OPTIONS] PATH | URL | -

OPTIONS說明

參數 解釋
--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 嘗試去更新鏡像的新版本
-q 安靜模式,成功后只輸出鏡像 ID
--rm 設置鏡像成功后刪除中間容器
--shm-size 設置 /dev/shm 的大小,默認值是 64M
--ulimit Ulimit 配置

樣例

從已經創建的容器中更新鏡像,並且提交這個鏡像

docker commit -m="has update" -a="shitao" ede0be5f1842 mysql:v2

OPTIONS說明

參數 解釋
-m 提交的描述信息
-a 指定鏡像作者
ede0be5f1842 容器 ID (通過docker ps -a查看)
mysql:v2 mysql 鏡像的倉庫源名 v2 鏡像的標簽

樣例

使用 Dockerfile 指令來創建一個新的鏡像

我們使用命令 docker build,從零開始來創建一個新的鏡像。為此,我們需要創建一個 Dockerfile 文件,其中包含一組指令來告訴 Docker 如何構建我們的鏡像。

docker build -t imagesname:2.0 /home/shitao/file/

OPTIONS說明

參數 解釋
-t 指定要創建的目標鏡像名
imagesname:2.0 imagesname 鏡像的倉庫源名 2.0 鏡像的標簽
/home/shitao/file/ dockerfile 路徑

tag

標記本地鏡像,將其歸入某一倉庫

docker tag 9e64176cd8a2 mysql163:2.0.1

OPTIONS說明

參數 解釋
9e64176cd8a2 鏡像 id (鏡像名)
mysql163:2.0.1 mysql163 鏡像的倉庫源名 2.0.1 鏡像的標簽

使用 docker images 命令可以看到,ID為 9e64176cd8a2 的鏡像多個標簽

save

將指定鏡像保存成 tar 歸檔文件

docker save -o /home/shitao/Downloads/mysql.tar 9e64176cd8a2

將鏡像 runoob/ubuntu:v3 生成 my_ubuntu_v3.tar 文檔

OPTIONS說明

參數 解釋
9e64176cd8a2 鏡像 id (鏡像名)
/home/shitao/Downloads/mysql.tar 保存的地址

import

從歸檔文件中創建鏡像

docker import /home/shitao/Downloads/mysql.tar mysql:0.2

OPTIONS說明

參數 解釋
mysql:0.2 mysql 鏡像的倉庫源名 0.2 鏡像的標簽
/home/shitao/Downloads/mysql.tar 歸檔文件地址

inspect

獲取容器/鏡像的元數據

docker inspect [OPTIONS] NAME|ID [NAME|ID...]

OPTIONS說明

參數 解釋
-f 指定返回值的模板文件
-s 顯示總的文件大小
--type 為指定類型返回JSON

樣例

docker inspect 9e6

容器生命周期管理

run

docker run -it hub.c.163.com/library/mysql /bin/bash

OPTIONS說明

參數 解釋
-i 以交互模式運行容器,通常與 -t 同時使用
-t 為容器重新分配一個偽輸入終端,通常與 -i 同時使用
hub.c.163.com/library/mysql 鏡像名
-P 將容器內部使用的網絡端口映射到我們使用的主機上
-d 后台運行容器,並返回容器ID

start

啟動一個或多少已經被停止的容器

docker start {容器ID|容器名稱}

stop

停止一個運行中的容器

docker stop {容器ID|容器名稱}

restart

重啟容器

docker restart {容器ID|容器名稱}

kill

殺掉一個運行中的容器

docker kill {容器ID|容器名稱}

rm

刪除一個或多少容器

docker rm [OPTIONS] CONTAINER [CONTAINER...]

OPTIONS說明

參數 解釋
-f 通過 SIGKILL 信號強制刪除一個運行中的容器
-l 移除容器間的網絡連接,而非容器本身
-v 刪除與容器關聯的卷

刪除指定容器

docker rm {容器ID|容器名稱}

刪除所有容器

docker rm $(docker ps -a -q)

exec

在運行的容器中執行命令

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

OPTIONS說明

參數 解釋
-d 分離模式: 在后台運行
-i 即使沒有附加也保持 STDIN 打開
-t 分配一個偽終端

樣例

docker exec -it {容器ID|容器名稱} /bin/bash

容器操作

ps

查看正在運行的容器

docker ps [OPTIONS]

OPTIONS說明

參數 解釋
-a 顯示所有的容器,包括未運行的
-f 根據條件過濾顯示的內容
--format 指定返回值的模板文件
-l 顯示最近創建的容器
-n 列出最近創建的n個容器
--no-trunc 不截斷輸出
-q 靜默模式,只顯示容器編號
-s 顯示總的文件大小

樣例

docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5a0ec27520c6 hub.c.163.com/library/mysql "docker-entrypoint..." 12 seconds ago Up 9 seconds 3306/tcp amazing_ardinghelli

各個項目說明:

項目 解釋
CONTAINER ID 容器ID
IMAGE 鏡像名稱
COMMAND 命令
CREATED 容器創建時間
PORTS 端口
NAMES 容器名稱

inspect

獲取容器/鏡像的元數據

docker inspect [OPTIONS] NAME|ID [NAME|ID...]

OPTIONS說明

參數 解釋
-f 指定返回值的模板文件
-s 顯示總的文件大小
--type 為指定類型返回JSON

樣例

docker inspect 9e6

top

查看容器中運行的進程信息,支持 ps 命令參數

docker top CONTAINER

logs

獲取容器的日志

docker logs [OPTIONS] CONTAINER

OPTIONS說明

參數 解釋
-f 跟蹤日志輸出
--since 顯示某個開始時間的所有日志
-t 顯示時間戳
--tail 僅列出最新N條容器日志

樣例

docker logs -f 9e6

Docker 命令


免責聲明!

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



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