【Docker】從零開始:7.幫助啟動類命令
- 一、幫助啟動類命令
- 啟動Docker
- 停止Docker
- 重啟Docker
- 查看Docker狀態
- 開機啟動
- 查看docker概要信息
- 查看docker總體幫助文檔
- 查看docker命令幫助文檔
- 二、鏡像命令
- 列出本地主機上的鏡像
- 運行示例
- 返回說明
- 操作參數
- 搜索倉庫里的某個鏡像
- 運行示例
- 返回說明
- 操作參數
- 拉取鏡像
- 運行示例
- 查看鏡像/容器/數據卷所占的空間
- 運行示例
- 返回說明
- 刪除鏡像
- 運行示例
- 運行鏡像
- 運行示例
- 操作參數
- 列出當前所有正在運行的容器
- 運行示例
- 操作參數
- 退出容器
- run進去容器,exit退出,容器停止
- run進去容器,ctrl+p+q退出,容器不停止
- 啟動已經停止的的容器
- 啟動已經停止的的容器
- 重啟容器
- 停止容器
- 強制停止容器
- 刪掉已停止的容器
- 一次性刪除多個容器實例
- 操作參數
- 檢查容器文件結構修改
- 運行示例
- 殺掉運行中的容器
- 運行示例
- 參數說明
- 暫停/恢復容器中所有進程
- 運行示例
- 容器重命名
- 運行示例
- 三.其他常用
- 啟動守護式容器(后臺服務器)
- 查看容器日志
- 運行示例
- 操作參數
- 查看容器內運行的進程
- 查看容器內部細節
- 操作參數
- 重新進入容器(進入正在運行的容器并以命令行交互)
- 運行示例
- 操作參數
- 從容器內拷貝文件到主機
- 操作參數
- 導出容器
- 運行示例
- 操作參數
- 導入容器
一、幫助啟動類命令
啟動Docker
docker:systemctl start docker
停止Docker
systemctl stop docker
重啟Docker
systemctl restart docker
查看Docker狀態
systemctl status docker
開機啟動
systemctl enable docker
查看docker概要信息
docker info
查看docker總體幫助文檔
docker--help
查看docker命令幫助文檔
docker 具體命令 -help
二、鏡像命令
列出本地主機上的鏡像
docker images
運行示例
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest feb5d9fea6a5 2 years ago 13.3kB
[root@docker ~]#
返回說明
- REPOSITORY:表示鏡像的倉庫源
- TAG:鏡像的標簽版本號
- IMAGE ID:鏡像ID
- CREATED:鏡像創建時間
- SIZE:鏡像大小
同一倉庫源可以有多個 TAG版本,代表這個倉庫源的不同個版本,我們使用 REPOSITORY:TAG 來定義不同的鏡像。
如果你不指定一個鏡像的版本標簽,例如你只使用 ubuntu,docker 將默認使用 ubuntu:latest 鏡像
latest 表示最新版本
操作參數
docker images -a
docker images -q
參數 | 說明 |
---|---|
-a | 列出本地所有的鏡像(含歷史映像層) |
-q | 只顯示鏡像ID |
搜索倉庫里的某個鏡像
docker search [鏡像名稱]
運行示例
[root@docker ~]# docker search redis
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
redis Redis is an open source key-value store that… 12490 [OK]
redislabs/redisearch Redis With the RedisSearch module pre-loaded… 61
redislabs/redisinsight RedisInsight - The GUI for Redis 94
redis/redis-stack-server redis-stack-server installs a Redis server w… 60
redis/redis-stack redis-stack installs a Redis server with add… 82
redislabs/rebloom A probablistic datatypes module for Redis 25 [OK]
redislabs/redis Clustered in-memory database engine compatib… 40
redislabs/rejson RedisJSON - Enhanced JSON data type processi… 53
redislabs/redisgraph A graph database module for Redis 26 [OK]
redislabs/redismod An automated build of redismod - latest Redi… 41 [OK]
redislabs/redistimeseries A time series database module for Redis 12
redislabs/operator 7
redislabs/operator-internal This repository contains pre-released versio… 1
redislabs/redis-py 5
redislabs/redis-webcli A tiny Flask app to provide access to Redis … 5 [OK]
redislabs/redisgears An automated build of RedisGears 4
redislabs/k8s-controller-internal 0
redislabs/k8s-controller 2
redislabs/memtier_benchmark Docker image to run memtier_benchmark 0
redislabs/ng-redis-raft Redis with redis raft module 0
redislabs/redisai 6
redislabs/olmtest Test artefact for OLM CSV 1
bitnami/redis Bitnami Redis Docker Image 271 [OK]
redislabs/olm-bundle 0
redislabs/redisml A Redis module that implements several machi… 3 [OK]
返回說明
- NAME:表示鏡像名稱
- DESCRIPTION:鏡像說明
- STARS:鏡像的點贊數
- OFFICIAL:是否是官方的
- AUTOMATED:是否是自動構建的
操作參數
docker search --limit 5 [鏡像名稱]
參數 | 說明 |
---|---|
–limit | 只列出N個鏡像,默認25個 |
拉取鏡像
docker pull [鏡像名稱]:[鏡像標簽/TAG]
沒有鏡像標簽(TAG)就是最新版等價于docker pull [鏡像名稱]:latest
運行示例
[root@docker ~]# docker pull ubuntu
Using default tag: latest
latest: Pulling from library/ubuntu
7b1a6ab2e44d: Pull complete
Digest: sha256:626ffe58f6e7566e00254b638eb7e0f3b11d4da9675088f4781a50ae288f3322
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest
[root@docker ~]# docker pull mysql:5.6
5.6: Pulling from library/mysql
35b2232c987e: Pull complete
fc55c00e48f2: Pull complete
0030405130e3: Pull complete
e1fef7f6a8d1: Pull complete
1c76272398bb: Pull complete
f57e698171b6: Pull complete
f5b825b269c0: Pull complete
dcb0af686073: Pull complete
27bbfeb886d1: Pull complete
6f70cc868145: Pull complete
1f6637f4600d: Pull complete
Digest: sha256:20575ecebe6216036d25dab5903808211f1e9ba63dc7825ac20cb975e34cfcae
Status: Downloaded newer image for mysql:5.6
docker.io/library/mysql:5.6
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.6 dd3b2a5dcb48 23 months ago 303MB
ubuntu latest ba6acccedd29 2 years ago 72.8MB
hello-world latest feb5d9fea6a5 2 years ago 13.3kB
[root@docker ~]#
查看鏡像/容器/數據卷所占的空間
docker system df
運行示例
[root@docker ~]# docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 3 1 375.3MB 375.3MB (99%)
Containers 2 0 0B 0B
Local Volumes 0 0 0B 0B
Build Cache 0 0 0B 0B
[root@docker ~]#
返回說明
TYPE 類型:Images鏡像,Containers容器,Local Volumes本地卷,Build Cache構建緩存
- TOTAL 統計數量
- ACTIVE 正在使用的數量
- SIZE 磁盤占用大小
- RECLAIMABLE 可回收的空間大小
刪除鏡像
- 刪除單個鏡像
docker rmi [鏡像名稱]:[鏡像標簽]
docker rmi [鏡像ID]
- 刪除多個鏡像
docker rmi [鏡像1名稱]:[鏡像1標簽] [鏡像2名稱]:[鏡像2標簽] [鏡像3名稱]:[鏡像3標簽]
docker rmi [鏡像1ID] [鏡像2ID] [鏡像3ID]
- 刪除全部鏡像
docker rmi $(docker images -qa)
運行示例
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.6 dd3b2a5dcb48 23 months ago 303MB
ubuntu latest ba6acccedd29 2 years ago 72.8MB
hello-world latest feb5d9fea6a5 2 years ago 13.3kB
[root@docker ~]# docker rmi mysql:5.6
Untagged: mysql:5.6
Untagged: mysql@sha256:20575ecebe6216036d25dab5903808211f1e9ba63dc7825ac20cb975e34cfcae
Deleted: sha256:dd3b2a5dcb48ff61113592ed5ddd762581be4387c7bc552375a2159422aa6bf5
Deleted: sha256:8c5e3b50c7085016b7c692611fdedacba442aa0f4ccf8739f4ecf4d5e49b7d91
Deleted: sha256:2ff31bb829f16adc374868d9ef59254f394816aadfeb6b45da5bec5dcde45540
Deleted: sha256:91bcc75c6967ec46f3f19fa96f248ab3a23589788f9e2c4a1a2e032112def863
Deleted: sha256:127296d2ee30c8716069dc23d015d9ecaa1544d0a2c44712db128ae6a9cb1431
Deleted: sha256:fe36f45d1760f56c23a9957254682d74aa6e7fba931dc8f11addf75684b1aa69
Deleted: sha256:8d6550c8cb1e10f9d0cf1ee3061ecef9e2cb333cdfbf58a02ee27cf2dd5fc35a
Deleted: sha256:64e278d98d2502416e0c55646e919f0080a50f9a342b0e28aa9c43655518d3aa
Deleted: sha256:013f70419be70a06c8e4ce898f2dac82be8749cb9979d9e5b1c98dd82519f627
Deleted: sha256:c49bbc9eeced1247fcd625da3e2c2886e89b15a6264899a9ce32cd21d927912e
Deleted: sha256:031797b961ee18c70bff1f3b53cea52f643dbaef6a5ecb0e98fc2696e8b039a5
Deleted: sha256:2b83e5699838047f936a3875bcce7fe1b169983bf86785ae7519c5bc488558ae
[root@docker ~]# docker rmi ba6acccedd29
Untagged: ubuntu:latest
Untagged: ubuntu@sha256:626ffe58f6e7566e00254b638eb7e0f3b11d4da9675088f4781a50ae288f3322
Deleted: sha256:ba6acccedd2923aee4c2acc6a23780b14ed4b8a5fa4e14e252a23b846df9b6c1
Deleted: sha256:9f54eef412758095c8079ac465d494a2872e02e90bf1fb5f12a1641c0d1bb78b
[root@docker ~]#
運行鏡像
docker run [操作參數] [鏡像名稱]:[鏡像標識] [命令][參數]
docker run [操作參數] [鏡像ID] [命令][參數]
運行示例
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.6 dd3b2a5dcb48 23 months ago 303MB
ubuntu latest ba6acccedd29 2 years ago 72.8MB
hello-world latest feb5d9fea6a5 2 years ago 13.3kB
[root@docker ~]# docker rmi mysql:5.6
Untagged: mysql:5.6
Untagged: mysql@sha256:20575ecebe6216036d25dab5903808211f1e9ba63dc7825ac20cb975e34cfcae
Deleted: sha256:dd3b2a5dcb48ff61113592ed5ddd762581be4387c7bc552375a2159422aa6bf5
Deleted: sha256:8c5e3b50c7085016b7c692611fdedacba442aa0f4ccf8739f4ecf4d5e49b7d91
Deleted: sha256:2ff31bb829f16adc374868d9ef59254f394816aadfeb6b45da5bec5dcde45540
Deleted: sha256:91bcc75c6967ec46f3f19fa96f248ab3a23589788f9e2c4a1a2e032112def863
Deleted: sha256:127296d2ee30c8716069dc23d015d9ecaa1544d0a2c44712db128ae6a9cb1431
Deleted: sha256:fe36f45d1760f56c23a9957254682d74aa6e7fba931dc8f11addf75684b1aa69
Deleted: sha256:8d6550c8cb1e10f9d0cf1ee3061ecef9e2cb333cdfbf58a02ee27cf2dd5fc35a
Deleted: sha256:64e278d98d2502416e0c55646e919f0080a50f9a342b0e28aa9c43655518d3aa
Deleted: sha256:013f70419be70a06c8e4ce898f2dac82be8749cb9979d9e5b1c98dd82519f627
Deleted: sha256:c49bbc9eeced1247fcd625da3e2c2886e89b15a6264899a9ce32cd21d927912e
Deleted: sha256:031797b961ee18c70bff1f3b53cea52f643dbaef6a5ecb0e98fc2696e8b039a5
Deleted: sha256:2b83e5699838047f936a3875bcce7fe1b169983bf86785ae7519c5bc488558ae
[root@docker ~]# docker rmi ba6acccedd29
Untagged: ubuntu:latest
Untagged: ubuntu@sha256:626ffe58f6e7566e00254b638eb7e0f3b11d4da9675088f4781a50ae288f3322
Deleted: sha256:ba6acccedd2923aee4c2acc6a23780b14ed4b8a5fa4e14e252a23b846df9b6c1
Deleted: sha256:9f54eef412758095c8079ac465d494a2872e02e90bf1fb5f12a1641c0d1bb78b
[root@docker ~]#
操作參數
參數 | 說明 | 格式 |
---|---|---|
–add-host list | 向容器的 /etc/hosts 文件添加自定義主機名和 IP 映射 | –add-host myhost:192.168.0.100 |
–annotation map | Add an annotation to the container (passed through to the OCI runtime) (default map[]) | |
-a或–attach list | 附加到標準輸入、標準輸出或標準錯誤 指定標準輸入輸出內容類型,可選 STDIN/STDOUT/STDERR 三項 | |
–blkio-weight uint16 | 要使 –blkio-weight 生效,需要保證 IO 的調度算法為 CFQ,設置10-1000之間, 0為關閉 默認值為0 | |
–blkio-weight-device list | Block IO weight (relative device weight) (default []) | |
–cap-add list | 允許提升優先級及設置其他進程的優先級的開關參數。 | –cap-add=SYS_ADMIN |
–cap-drop list | 禁止提升優先級及設置其他進程的優先級的開關參數。 | –cap-drop=SYS_ADMIN |
–cgroup-parent string | 容器的可選父cgroup | |
–cgroupns string | 使用的Cgroup命名空間 (host/private) ‘host’在Docker主機的Cgroup命名空間中運行容器 ‘private’: 在其自己的私有Cgroup名稱空間中運行容器 ’':使用守護進程上默認cgroupns模式選項配置的cggroup名稱空間(default) | |
–cidfile string | 將 container ID 保存到 cid_file, 保存的格式為長 UUID | |
–cpu-period int | 指定容器對 CPU 的使用要在多長時間內做一次重新分配。需要與 --cpu-quota 一起使用,默認為 100000 微妙(100 毫秒),一般這個參數值無需修改。 | –cpu-period=100000 |
–cpu-quota int | 是用來指定在這個周期內,最多可以有多少時間用來跑這個容器,單位為微秒,一般這個參數值無需修改。 | |
–cpu-rt-period int | 全局 Docker服務配置參數:指定 CPU CFS 調度器周期,需要與 --cpu-quota 一起使用,默認為 100000 微妙(100 毫秒),一般這個參數值無需修改 | |
–cpu-rt-runtime int | 全局 Docker服務配置參數:單位為微秒。確保實時調度程序的容器可以在 100000 微妙時間內運行 950000 微秒,至少有 50000 微秒可用于非實時任務,表示的時間 (缺省是 0.95 s)之后才能被重新調度。必須設置了–cap-add=sys_nice 參數才能使用。 | |
-c,–cpu-shares int | CPU權重設置,Docker會把CPU資源分成1024份,如果對一個容器設置了1024意味它獨占所有CPU資源,如果多個容器同時進行了設置,那么每個容器最后會通過各自占有的百分比來分配CPU資源。當只有一個進程在運行的時候,他對一個 CPU 內核 100% 使用權,不管他有多少 CPU 份額。當和其他容器競爭 CPU 的時候,這個數值才有用。 | –cpu-shares 512 |
–cpus decimal | 指定一個容器可以使用多少可用的資源 | 。例如:主機有兩個 CPU,而你設置 --cpus=“1.5” ,那么容器可以使用 1.5 個 CPU 可以被它所使用。這個選項相當于設置 --cpu-period=“100000” 和 --cpu-quota=“150000” |
–cpuset-cpus string | 指定一個容器可以使用特定的 CPU 個數 | 第一個 CPU 的編號為 0,依次類推 1,2,3,4 。例如:–cpuset-cpus=0-3 使用第一,第二,第三,第四 CPU)。–cpuset-cpus=0-1,3 (使用第一,第二,第三 CPU。) |
–cpuset-mems string | 指定使用的內存 id (0-3,0,1) | |
-d或–detach | 在后臺運行容器并打印容器ID | |
–detach-keys string | 指定分離容器的鍵盤序列 | |
–device list | 可以將主機上的設備映射到容器中,使得容器能夠訪問主機上的設備資源 | 并將主機上的/dev/ttyS0設備映射到容器中 –device=/dev/ttyS0:/dev/ttyS0 |
–device-cgroup-rule list | 將規則添加到cgroup allowed devices列表 | |
–device-read-bps list | 限制讀某個設備的比特率 | –device-read-bps /dev/sda:1mb |
–device-read-iops list | 限制讀某個設備的每秒的讀寫次數 | –device-read-iops /dev/sda:1000 |
–device-write-bps list | 限制寫某個設備的比特率 | –device-write-bps /dev/sda:1mb |
–device-write-iops list | 限制寫某個設備的每秒的讀寫次數 | –device-write-iops /dev/sda:1000 |
–disable-content-trust | 忽略校驗,默認開啟 | |
–dns list | 指定容器使用的自定義 DNS 服務器 | -dns [DNS IP] |
–dns-option list | 為容器的 DNS 配置添加自定義選項 | –dns-option=timeout:5 |
–dns-search list | 指定容器的 DNS 搜索域 | –dns-search [網站地址] |
–domainname string | 設置容器NIS域 | |
–entrypoint string | 覆蓋鏡像默認入口點 | |
-e或–env list | 設置容器的環境變量 | -e [環境變量名稱]=[環境變量值] |
–env-file list | 在容器啟動時,Docker會自動讀取該文件,將其中的每個環境變量都添加到容器的環境變量中 | –env-file [配置文件] |
–expose list | Docker 服務端容器暴露的端口號,供互聯系統使用 | |
–gpus gpu-request | 要添加到容器中的GPU設備(“全部”傳遞所有GPU | |
–group-add list | 加入的其他組 | |
–health-cmd string | 運行健康檢查命令 | |
–health-interval duration | 運行健康檢查時間間隔(ms | s |
–health-retries int | 需要報告健康檢查失敗次數 | |
–health-start-period duration | 健康檢查重啟倒計時,容器初始化的開始時間 (ms | s |
–health-timeout duration | 健康檢查運行的超時時間(ms | s |
–help | 打印幫助并退出 | |
-h,–hostname string | 設置容器的主機名 | |
–init | 在轉發信號和獲取進程的容器中運行init | |
-i或–interactive | 以交互模式運行容器,通常與 -t 同時使用 | |
–ip string | 指定IPv4地址 | |
–ip6 string | 制定IPv6地址 | |
–ipc string | IPC(POSIX/SysV IPC) 命名空間提供了相互隔離的命名共享內存,信號燈變量和消息隊列。 共享內存可以提高進程數據交互速度。共享內存一般用在 database 和高性能應用(C/OpenMPI, C++/using boost libraries)上或者金融服務上。如果需要容器里面部署上述類型的應用,那么就應該在多個容器直接采取共享內存了 | |
–isolation string | 使用容器隔離技術 | |
–kernel-memory bytes | 內核內存,不會被交換到 swap 上。一般情況下,不建議修改 | |
-l,–label list | 在容器上設置標簽 | |
–label-file list | 為容器添加標簽,用于識別和組織容器 | |
–link list | 將容器連接到另一個容器,在兩個容器之間建立網絡連接。 | –link [容器名稱]:[自定義網絡名稱] [鏡像名稱] |
–link-local-ip list | 設置容器本地IPv4/IPv6鏈路地址 | |
–log-driver string | Docker 增加了對 json-file 型(默認)log driver 的 rotate 功能,我們可通過 max-size 和 max-file 兩個 –log-opt 來配置。 | –log-driver=json-file --log-opt max-size=1k --log-opt max-file=5 |
–log-opt list | 配合Log driver 使用過 | |
–mac-address string | 綁定容器的MAC地址 | |
-m或–memory bytes | 設置容器可使用的內存限制 | –memory 1g |
–memory-reservation bytes | 軟件限制內存使用,宿主機內存空間時,可以根據設置超出一定的限制 | |
–memory-swap bytes | 等于內存和 swap 分區大小的總和,設置為 -1 時,表示 swap 分區的大小是無限的。默認單位為 byte,可以使用 K、G、M 等帶單位的字符串。如果 –memory-swap 的設置值小于 –memory 的值,則使用默認值,為 –memory-swap 值的兩倍 | |
–memory-swappiness int | 控制進程將物理內存交換到 swap 分區的傾向,默認系數為 60。系數越小,就越傾向于使用物理內存。值范圍為 0-100。當值為100 時,表示盡量使用 swap 分區;當值為 0 時,表示禁用容器 swap 功能(這點不同于宿主機,宿主機 swappiness 設置為 0 也不保證 swap 不會被使用,默認為-1 | |
–mount mount | 與"-v"效果一致,區別是掛載主機目錄使用“-v”時,如果宿主機上沒有指定文件不會報錯,會自動創建指定文件;當使用“-mount”時,如果宿主機中沒有這個文件會報錯找不到指定文件,不會自動創建指定文件。 | |
–name string | 為容器指定一個名稱(可以根據需要更改為您喜歡的名稱) | –name [自定義容器名稱] |
–network network | 指定容器使用的網絡模式 | docker network create --driver bridge [自定義網絡名稱] docker run --network=[自定義網絡名稱] [鏡像名稱] |
–network-alias list | 為容器添加網絡范圍的別名 | |
–no-healthcheck | 禁用任何指定容器的HEALTHCHECK | |
–oom-kill-disable | 禁用任何指定容器的OOM Killer | |
–oom-score-adj int | 調整主機OOM首選項(-1000 to 1000) | |
–pid string | 設置容器pid命名空間 | |
–pids-limit int | 限制容器創建的最大進程數(設置-1表示無限制) | |
–platform string | 獲取指定系統架構 | docker pull --platform= : |
–privileged | 給容器賦予特權,可以訪問主機的設備。 | |
-p或–publish list | 將主機的端口 80 映射到容器的端口 80。這樣,您可以通過訪問 http://localhost 來訪問 NGINX 容器中的網站。 | -p [映射端口]:[容器內部端口] |
-P或–publish-all | 對外映射所有端口 | |
–pull string | 每次生成進程時檢查注冊表中是否有更新的映像 (“always”,“missing”,“never”) (default “missing”) | |
-q,–quiet | Suppress the pull output | |
–read-only | 將容器的文件系統設置為只讀模式 | |
–restart string | no 默認策略,在容器退出時不重啟容器 on-failure 在容器非正常退出時(退出狀態非 0),才會重啟容器 on-failure:3 在容器非正常退出時重啟容器,最多重啟 3 次 always 在容器退出時總是重啟容器,當操作系統或 docker 服務重啟時,該容器總能隨系統啟動 unless-stopped 在容器退出時總是重啟容器,但是不考慮在 Docker 守護進程啟動時就已經停止了的容器 | |
–rm | 當容器退出時如果容器關閉,則自動清除所有該容器的信息 | |
–runtime string | 指定一個–runtime string容器 | |
–security-opt list | 設置容器的安全選項,如 AppArmor 配置、Seccomp 配置等 | –security-opt seccomp:unconfined |
–shm-size bytes | 設置容器的共享內存大小 | –shm-size 2g |
–sig-proxy | –sig-proxy=true 不會將收到的信號重定向到進程。因此,例如,如果您附加到一個容器并按 Ctrl+C,它不會影響容器的進程,只會影響您的控制臺。 | |
–stop-signal string | 覆蓋鏡像中的 STOPSIGNAL 設置 | |
–stop-timeout int | 覆蓋鏡像中的關閉超時時間 | |
–storage-opt list | 約束整個容器文件系統所占空間的最大值 | |
–sysctl map | 設置容器的內核參數 | –sysctl net.ipv4.ip_forward=1 |
–tmpfs list | 在容器內創建臨時文件系統,用于存儲臨時數據 | –tmpfs [容器內自定義目錄] |
-t,–tty | 為容器重新分配一個偽輸入終端,通常與 -i 同時使用 | |
–ulimit ulimit | 允許容器設置的最大實時優先級,必須設置了–cap-add=sys_nice 參數才能使用,用于設置容器的資源限制,如最大打開文件數、最大進程數等 | –ulimit nofile=1024:1024 |
-u或–user string | 指定容器運行時的用戶名或 UID | |
–userns string | 使用的用戶命名空間 | |
–uts string | 使用的UTS命名空間 | |
-v,–volume list | 將主機上的文件目錄掛載到容器中的目錄。 | -v [本機目錄]:[容器目錄] |
–volume-driver string | 指定容器使用的卷驅動程序 | |
–volumes-from list | 從其他容器掛載目錄。 1.創建 dbdata 容器,并含有 /data 數據卷 | docker run -it --name dbdata --hostname=dbdata -v /data -d centos:8.2.2004 /bin/bash docker run -it --name web --hostname=web --volumes-from dbdata -d centos:8.2.2004 /bin/bash |
-w,–workdir string | 設置容器的工作目錄 | –workdir /app |
列出當前所有正在運行的容器
docker ps [操作參數]
運行示例
[root@docker ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f919fcfcb7b0 hello-world "/hello" 5 hours ago Exited (0) 5 hours ago fervent_benz
a4016a83fc04 hello-world "/hello" 9 hours ago Exited (0) 9 hours ago hopeful_bardeen
f30bd054e899 9c7a54a9a43c "/hello" 26 hours ago Exited (0) 26 hours ago mystifying_shockley
操作參數
參數 | 說明 | 格式 |
---|---|---|
-a或-all | 列出所有容器 | |
-f或 --filter filter | 使用過濾器來過濾輸出 | |
–format string | 以go的形式格式化輸出列表 | docker ps -a --format {{.Names}}-{{.Image}} |
-n或–last int | 顯示最近N個創建的容器 | |
-l或–latest | 顯示最近創建的容器 | |
–no-trunc | 不對輸出進行截斷操作,此時可以看到完整的COMMAND,CONTAINER ID | |
-q或–quiet | 靜默模式,只顯示容器編號 | |
-s或–size | 會列出容器的文件大小(容器增加的大小/容器的虛擬大小) |
退出容器
run進去容器,exit退出,容器停止
exit
run進去容器,ctrl+p+q退出,容器不停止
按鍵 Ctrl+p+q
啟動已經停止的的容器
docker start [容器ID/容器名稱]
啟動已經停止的的容器
docker start [容器ID/容器名稱]
重啟容器
docker restart [容器ID/容器名稱]
停止容器
docker stop [容器ID/容器名稱]
強制停止容器
docker kill [容器ID/容器名稱]
刪掉已停止的容器
docker rm [容器ID/容器名稱]
一次性刪除多個容器實例
docker rm -f $(docker ps -qa)
docker ps -qs | xargs docker rm
docker container prune
操作參數
- docker rm 參數
參數 | 說明 | 格式 |
---|---|---|
-f或–force | 強制刪除 | |
-l或 --link | 刪除指定的鏈接 | |
-v或–volumes | 刪除與容器關聯的匿名卷 |
- docker container prune 參數
參數 | 說明 | 格式 |
---|---|---|
–filter filter | 篩選過濾,(‘until=’) | |
-f, --force | 直接刪除,不提示確認選項 |
檢查容器文件結構修改
docker diff [容器名]
docker container diff [容器名]
運行示例
假設容器NAMES為web
docker diff web
殺掉運行中的容器
docker kill [操作參數] [容器名] [CONTAINER...]
運行示例
假設容器NAMES為web
docker diff web
參數說明
參數 | 說明 | 格式 |
---|---|---|
-s, --signal string | 向容器發送一個信號(默認 “KILL”) |
暫停/恢復容器中所有進程
運行示例
- 暫停
docker pause [容器名/容器ID]
docker container pause [容器名/容器ID]
- 恢復
docker unpause [容器名/容器ID]
docker container unpause [容器名/容器ID]
容器重命名
運行示例
docker rename [容器名/容器ID] [新的容器名]
docker container rename [容器名/容器ID] [新的容器名]
三.其他常用
啟動守護式容器(后臺服務器)
- 在大部分的場景下,我們希望 docker 的服務是在后臺運行的,
我們可以過 -d 指定容器的后臺運行模式。
docker run -d [容器名]
查看容器日志
docker logs [操作參數] [容器ID]
運行示例
進入到容器中,假設容器NAMES為web
docker exec -it web /bin/bash
操作參數
參數 | 說明 | 格式 |
---|---|---|
–details | 顯示更多的信息 | |
-f, --follow | 跟蹤日志輸出,類似tail -f | |
–since string | 顯示某個時間段后的日志,例:docker logs --since=“2019-12-12T13:23:37” CONTAINER | |
–tail string | 從日志末尾顯示行數,默認all | |
-t, --timestamps | 顯示時間戳 | |
–until string | 顯示某個時間段前的日志 |
查看容器內運行的進程
docker top [容器ID]
查看容器內部細節
docker inspect [容器ID]
docker container inspect [容器ID]
操作參數
參數 | 說明 | 格式 |
---|---|---|
-f, --format string | 指定go模板格式化輸出 | |
-s, --size | 顯示總文件大小 | |
-type string | 返回指定類型的JSON |
查看一個名稱為web的容器
docker inspect web
查看容器的內部IP,假設容器NAMES為web
docker inspect --format='{{.NetworkSettings.IPAddress}}' web
查看容器卷的關聯信息,假設容器NAMES為web
docker inspect -f {{.Mounts}} web
重新進入容器(進入正在運行的容器并以命令行交互)
- exec 是在容器中打開新的終端,并且可以啟動新的進程
用exit退出,不會導致容器的停止。
docker exec [操作參數] [容器ID] [bashShell]
docker exec [操作參數] [容器名稱] [bashShell]
運行示例
進入到容器中,假設容器NAMES為web
docker exec -it web /bin/bash
操作參數
參數 | 說明 | 格式 |
---|---|---|
-d, --detach | 在后臺運行容器并打印容器ID | |
–detach-keys string | 指定分離容器的鍵盤序列 | |
-e, --env list | 設置環境變量 | |
–env-file list | 在容器啟動時,Docker會自動讀取該文件,將其中的每個環境變量都添加到容器的環境變量中 | –env-file [配置文件] |
-i, --interactive | 交互模式,通常和-t選項一同使用 | |
–privileged | 賦予命令提供一些擴展權限 | |
-t, --tty | 分配一個偽tty終端,通常和-i選項一同使用 | |
-u, --user string | 指定容器用戶 (format: <name | uid>[:<group |
-w, --workdir string | 指定容器的工作目錄 |
- attach 直接進入容器啟動命令的終端,不會啟動新的進程
用exit退出,會導致容器的停止。
docker attach -it 容器ID bashShell
參數 | 說明 | 格式 |
---|---|---|
–detach-keys string | 指定分離容器的鍵盤序列 | |
–no-stdin | 不連接標準輸入 | |
–sig-proxy | –sig-proxy=true 不會將收到的信號重定向到進程。因此,例如,如果您附加到一個容器并按 Ctrl+C,它不會影響容器的進程,只會影響您的控制臺。 |
使用ctrl+c可以直接斷開連接,但是這樣會導致容器退出,而且還stop了。如果想在脫離容器終端時,容器依然運行。就需要使用–sig-proxy這個參數。
docker attach --sig-proxy=false mytest
attach 到一個正在運行的容器里面,需要注意的是,attach進去之后,退出會stop容器,建議盡量用exec。加上–no-stdin就不會退出了,并且進去之后不能做任何操作
docker attach --no-stdin mytest
從容器內拷貝文件到主機
docker copy [操作參數] [容器ID]:[拷貝文件路徑] [目的文件路徑]
操作參數
參數 | 說明 | 格式 |
---|---|---|
–o | 輸入內容寫到文件 |
導出容器
docker export [操作參數] [容器ID] > [自定義文件名].tar
運行示例
docker export CONTAINER ID > NAME.tar
docker export -o NAME.tar CONTAINER ID
操作參數
參數 | 說明 | 格式 |
---|---|---|
–o | 輸入內容寫到文件 |
導入容器
cat [自定義文件名].tar | docker import [容器名稱]:[容器標簽]
參數 | 說明 | 格式 |
---|---|---|
–c, --change list | Apply Dockerfile instruction to the created image | |
-m, --message string | Set commit message for imported image | |
–platform string | et platform if server is multi-platform capable |