Docker命令

本文來自技術分享
1、容器生命週期java

1.1 Docker run命令

docker run :建立一個新的容器並運行一個命令mysql

語法:nginx

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]sql

經常使用OPTIONS說明:docker

l -d: 後臺運行容器,並返回容器ID;緩存

l -i: 以交互模式運行容器,一般與 -t 同時使用;bash

l -P: 隨機端口映射,容器內部端口隨機映射到主機的高端口服務器

l -p: 指定端口映射,格式爲:主機(宿主)端口:容器端口網絡

l --name="nginx": 爲容器指定一個名稱;tcp

l --dns 8.8.8.8: 指定容器使用的DNS服務器,默認和宿主一致;

l -e username="docker": 設置環境變量;

l --cpuset="0-2" or --cpuset="0,1,2": 綁定容器到指定CPU運行;

l -m :設置容器使用內存最大值;

l --net="bridge": 指定容器的網絡鏈接類型,支持 bridge/host/none/container: 四種類型;

l --volume , -v: 綁定一個卷

示例:

docker run -d --name mqtt-broker
docker run -d --name mqtt-broker -p 1883:1883 -p 9883:9883 -e PORT=1883 -v /home/bopband/mqtt-broker/log:/home/bopband/mqtt-broker/log \ --restart always mqtt/mqtt-broker:2.0

Bridge:橋接式網絡模式(默認),使用docker0網橋,同一網橋上的容器能夠相互通訊

Host: 開放式網絡模式,和宿主機共享網絡

None: 封閉式網絡模式,不爲容器配置網絡

Container:聯合掛載式網絡模式,和其餘容器共享網絡

1.2 Docker start/stop/restart

docker start :啓動一個或多個已經被中止的容器

docker stop :中止一個運行中的容器

docker restart :重啓容器

語法:

docker start [OPTIONS] CONTAINER [CONTAINER...]
示例:

docker restart mqtt-broker

1.3 Docker kill

docker kill :殺掉一個運行中的容器。

語法:

docker kill [OPTIONS] CONTAINER [CONTAINER...]
OPTIONS說明:

l -s :向容器發送一個信號

示例:

docker kill -s KILL nginx

1.4 Docker rm命令

docker rm :刪除一個或多少容器

語法:

docker rm [OPTIONS] CONTAINER [CONTAINER...]
OPTIONS說明:

l -f :經過SIGKILL信號強制刪除一個運行中的容器

l -l :移除容器間的網絡鏈接,而非容器自己

l -v : 刪除與容器關聯的卷

示例:

docker rm nginx

1.5 Docker exec命令

docker exec :在運行的容器中執行命令

語法:

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
OPTIONS說明:

l -d :分離模式: 在後臺運行

l -i :保持STDIN 打開

l -t :分配一個僞終端

示例:

docker exec -it nginx /bin/bash

2、容器操做

2.1 Docker ps命令

docker ps : 列出容器
語法:

docker ps [OPTIONS]
OPTIONS說明:

l -a :顯示全部的容器,包括未運行的。

l --format :指定返回值的模板文件。

l -l :顯示最近建立的容器。

l -n :列出最近建立的n個容器。

示例:

docker ps -a

2.2 Docker inspect命令

docker inspect : 獲取容器/鏡像的元數據。

語法:

docker inspect [OPTIONS] NAME|ID [NAME|ID...]
示例:

docker inspect nginx

2.3 Docker

docker attach :鏈接到正在運行中的容器。

語法:

docker attach [OPTIONS] CONTAINER
要attach上去的容器必須正在運行,使用CTRL-C退出時會致使容器stop。

2.4 Docker logs命令

docker logs : 獲取容器的日誌

語法:

docker logs [OPTIONS] CONTAINER
OPTIONS說明:

l -f : 跟蹤日誌輸出

l --since :顯示某個開始時間的全部日誌

l -t : 顯示時間戳

l --tail :僅列出最新N條容器日誌

示例:

docker logs --since="2016-07-01" --tail=100 nginx
docker logs -f --tail=100 nginx

2.5 Docker port命令

docker port :列出指定的容器的端口映射,或者查找將PRIVATE_PORT NAT到面向公衆的端口。

語法:

docker port [OPTIONS] CONTAINER [PRIVATE_PORT[/PROTO]]
示例:

# docker port mysql

3306/tcp -> 0.0.0.0:3306

3、容器rootfs命令

3.1 Docker commit命令

docker commit :從容器建立一個新的鏡像。

語法:

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
OPTIONS說明:

l -a :提交的鏡像做者;

l -c :使用Dockerfile指令來建立鏡像;

l -m :提交時的說明文字;

l -p :在commit時,將容器暫停。

示例:

docker commit -a "test" -m "my mysql" a404c6c174a2  mymysql:v1

3.2 Docker cp命令

docker cp :用於容器與主機之間的數據拷貝。

語法:

docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
OPTIONS說明:

l -L :保持源目標中的連接

示例:

docker cp /www/ nginx:/www/          # 將宿主機/www/複製到nginx容器的/www/目錄
docker cp  nginx:/www /tmp/         # 將nginx容器的/www/目錄複製到宿主機/tmp/

4、鏡像倉庫

4.1 Docker login命令

docker login : 登錄到一個Docker鏡像倉庫,若是未指定鏡像倉庫地址,默認爲官方倉庫 Docker Hub

docker logout : 登出一個Docker鏡像倉庫,若是未指定鏡像倉庫地址,默認爲官方倉庫 Docker Hub

語法:

docker login [OPTIONS] [SERVER]
OPTIONS說明:

l -u :登錄的用戶名

l -p :登錄的密碼

示例:

docker login -u 用戶名 -p 密碼
docker logout

4.2 Docker pull命令

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

語法:

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

l -a :拉取全部 tagged 鏡像

示例:

docker pull -a mysql

4.3 Docker push命令

docker push : 將本地的鏡像上傳到鏡像倉庫,要先登錄到鏡像倉庫

語法:

docker push [OPTIONS] NAME[:TAG]
OPTIONS說明:

l --disable-content-trust :忽略鏡像的校驗,默認開啓

示例:

docker push mymysql:v1

4.4 Docker search命令

docker search : 從Docker Hub查找鏡像

語法:

docker search [OPTIONS] TERM
OPTIONS說明:

l --no-trunc :顯示完整的鏡像描述;

l -s :列出收藏數不小於指定值的鏡像。

示例:

docker search -s 10 --no-trunc java

5、本地鏡像管理

5.1 Docker images命令

docker images : 列出本地鏡像。

語法:

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

l -a :列出本地全部的鏡像(含中間映像層,默認狀況下,過濾掉中間映像層);

l --no-trunc :顯示完整的鏡像信息;

l -q :只顯示鏡像ID。

示例:

docker images -a
docker images nginx

5.2 Docker rmi命令

docker rmi : 刪除本地一個或多少鏡像。

語法:

docker rmi [OPTIONS] IMAGE [IMAGE...]
OPTIONS說明:

l -f :強制刪除;

示例:

docker rmi -f nginx

5.2 Docker tag命令

docker tag : 標記本地鏡像,將其納入某一倉庫。

語法:

docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]
示例:

docker tag
docker tag 192.168.3.74:5000/mqtt/mqtt-service:2.0 mqtt/mqtt-service:2.0

5.3 Docker build命令

docker build 命令用於使用 Dockerfile 建立鏡像。

語法:

docker build [OPTIONS] PATH | URL | -
OPTIONS說明:

l --build-arg=[] :設置鏡像建立時的變量;

l -f :指定要使用的Dockerfile路徑;

l --no-cache :建立鏡像的過程不使用緩存;

l --tag, -t: 鏡像的名字及標籤,一般 name:tag 或者 name 格式;能夠在一次構建中爲一個鏡像設置多個標籤。

示例:

使用當前目錄的 Dockerfile 建立鏡像,標籤爲bopband/nginx:v1
docker build -t bopband/nginx:v1 .

5.4 Docker history命令

docker history : 查看指定鏡像的建立歷史。

語法:

docker history [OPTIONS] IMAGE
示例:

docker history bopband/nginx:v1

5.5 Docker save命令

docker save : 將指定鏡像保存成 tar 歸檔文件。

語法:

docker save [OPTIONS] IMAGE [IMAGE...]
OPTIONS說明:

l -o :輸出到的文件。

示例:

docker save -o my_nginx_v1.tar bopband/nginx:v1

5.6 Docker load 命令

docker load : 導入使用 docker save 命令導出的鏡像。

語法:

docker load [OPTIONS]
OPTIONS說明:

l --input , -i : 指定導入的文件,代替 STDIN。

示例:

docker load < my_nginx_v1.tar
docker load -i my_nginx_v1.tar

5.7 Docker import命令

docker import : 從歸檔文件中建立鏡像。

語法:

docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
示例:

docker import my_nginx_v1.tar bopband/nginx:v1
相關文章
相關標籤/搜索