本文原始地址: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 系統信息,包括鏡像和容器數mysql
docker info
顯示 Docker 版本信息linux
docker version
從Docker Hub查找鏡像sql
docker search [OPTIONS] TERM
OPTIONS說明docker
參數 | 解釋 |
---|---|
--automated |
只列出 automated build類型的鏡像 |
--no-trunc |
顯示完整的鏡像描述 |
-s |
列出收藏數不小於指定值的鏡像 |
樣例apache
docker search mssql
登錄到一個 Docker 鏡像倉庫ubuntu
docker login
樣例windows
docker login -u 用戶名 -p 密碼
登出一個 Docker 鏡像倉庫緩存
docker logout
從鏡像倉庫中拉取或者更新指定鏡像bash
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
OPTIONS說明
參數 | 解釋 |
---|---|
-a |
拉取全部 tagged 鏡像 |
--disable-content-trust |
忽略鏡像的校驗,默認開啓 |
樣例
docker pull hub.c.163.com/library/mysql:latest
將本地的鏡像上傳到鏡像倉庫,要先登錄到鏡像倉庫
docker pull NAME[:TAG|@DIGEST]
樣例
docker push myapache:v1
列出本地鏡像
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
刪除本地一個或多少鏡像
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)
使用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 路徑 |
標記本地鏡像,將其納入某一倉庫
docker tag 9e64176cd8a2 mysql163:2.0.1
OPTIONS說明
參數 | 解釋 |
---|---|
9e64176cd8a2 |
鏡像 id (鏡像名) |
mysql163:2.0.1 |
mysql163 鏡像的倉庫源名 2.0.1 鏡像的標籤 |
使用 docker images
命令能夠看到,ID爲 9e64176cd8a2
的鏡像多個標籤
將指定鏡像保存成 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 |
保存的地址 |
從歸檔文件中建立鏡像
docker import /home/shitao/Downloads/mysql.tar mysql:0.2
OPTIONS說明
參數 | 解釋 |
---|---|
mysql:0.2 |
mysql 鏡像的倉庫源名 0.2 鏡像的標籤 |
/home/shitao/Downloads/mysql.tar |
歸檔文件地址 |
獲取容器/鏡像的元數據
docker inspect [OPTIONS] NAME|ID [NAME|ID...]
OPTIONS說明
參數 | 解釋 |
---|---|
-f |
指定返回值的模板文件 |
-s |
顯示總的文件大小 |
--type |
爲指定類型返回JSON |
樣例
docker inspect 9e6
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 |
啓動一個或多少已經被中止的容器
docker start {容器ID|容器名稱}
中止一個運行中的容器
docker stop {容器ID|容器名稱}
重啓容器
docker restart {容器ID|容器名稱}
殺掉一個運行中的容器
docker kill {容器ID|容器名稱}
刪除一個或多少容器
docker rm [OPTIONS] CONTAINER [CONTAINER...]
OPTIONS說明
參數 | 解釋 |
---|---|
-f |
經過 SIGKILL 信號強制刪除一個運行中的容器 |
-l |
移除容器間的網絡鏈接,而非容器自己 |
-v |
刪除與容器關聯的卷 |
刪除指定容器
docker rm {容器ID|容器名稱}
刪除全部容器
docker rm $(docker ps -a -q)
在運行的容器中執行命令
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
OPTIONS說明
參數 | 解釋 |
---|---|
-d |
分離模式: 在後臺運行 |
-i |
即便沒有附加也保持 STDIN 打開 |
-t |
分配一個僞終端 |
樣例
docker exec -it {容器ID|容器名稱} /bin/bash
查看正在運行的容器
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 |
容器名稱 |
獲取容器/鏡像的元數據
docker inspect [OPTIONS] NAME|ID [NAME|ID...]
OPTIONS說明
參數 | 解釋 |
---|---|
-f |
指定返回值的模板文件 |
-s |
顯示總的文件大小 |
--type |
爲指定類型返回JSON |
樣例
docker inspect 9e6
查看容器中運行的進程信息,支持 ps 命令參數
docker top CONTAINER
獲取容器的日誌
docker logs [OPTIONS] CONTAINER
OPTIONS說明
參數 | 解釋 |
---|---|
-f |
跟蹤日誌輸出 |
--since |
顯示某個開始時間的全部日誌 |
-t |
顯示時間戳 |
--tail |
僅列出最新N條容器日誌 |
樣例
docker logs -f 9e6