Docker 經常使用命令

Docker 目錄

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

資源彙總

類型 名稱 地址
官方網站 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 系統信息,包括鏡像和容器數mysql

docker info

version

顯示 Docker 版本信息linux

docker version

從Docker Hub查找鏡像sql

docker search [OPTIONS] TERM

OPTIONS說明docker

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

樣例apache

docker search mssql

login

登錄到一個 Docker 鏡像倉庫ubuntu

docker login

樣例windows

docker login -u 用戶名 -p 密碼

logout

登出一個 Docker 鏡像倉庫緩存

docker logout

pull

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

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.十、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 命令

相關文章
相關標籤/搜索