1. 程式人生 > 其它 >Docker常見命令

Docker常見命令

容器操作

列出本地容器程序

[root@localhost ~]# docker ps -a

docker run 命令格式和引數

命令格式:
docker run [OPTIONS] IMAGE [COMMAND]
引數:
OPTIONS選項
-i : 表示啟動一個可互動的容器,並持續開啟標準輸入
-t : 表示使用終端關聯到容器的標準輸入輸出上
-d : 表示將容器放置後臺執行
--rm :退出後即刪除容器
--name :表示定義容器唯一名稱
IMAGE :表示要執行的映象
COMMAND :表示啟動容器時要執行的命令

互動式啟動容器

[root@localhost ~]# docker run -it alpine:latest /bin/sh

後臺非互動啟動重新命名

[root@localhost ~]# docker run -d --name my-alpine alpine:latest 

檢視宿主機程序(前提得有這個程序啟動)

[root@localhost ~]# ps aux | grep sleep| grep -v grep

使用互動式進入到指定容器終端

[root@localhost ~]# docker exec -it  f70734b6a266 /bin/sh

停止一個指定正在執行的容器

[root@localhost ~]# docker stop f70734b6a266

啟動一個指定正在停止的容器

[root@localhost ~]# docker start  f70734b6a266

強制刪除

[root@localhost ~]# docker rm -f myalpinen

查詢已經停止退出的所有容器並刪除

[root@localhost ~]# docker rm -fv  `docker ps -aq -f status=exited`

刪除當前容器的所有容器

[root@localhost ~]# docker rm -fv `docker ps -aq`

把容器裡面的檔案cp出來到宿主機

[root@localhost ~]# docker cp 495ac14a43ae:/etc/nginx/nginx.conf /opt

把宿主機檔案拷貝到容器裡面

[root@localhost ~]# docker cp /opt/nginx.conf  495ac14a43ae:/etc/nginx/nginx.conf

查詢已經停止退出的所有容器並刪除

[root@localhost ~]# for i in `docker ps -a | grep -i exit | awk '{print $1}'`;do docker rm -f $i;done

固化到容器只讀層

[root@localhost ~]# docker commit -p myalpine my-alpine:v3.10.3_with_1.txt /bin/sh

匯出映象

[root@localhost ~]# docker save dd26578fb4a8 > alpine:v3.10.3_with_1.txt.tar

匯入映象

[root@localhost ~]# docker load < alpine\:3.10.3_with.tar

打標籤

[root@localhost ~]# docker tag f70734b6a266 alpine:3.10.3_with

檢視容器日誌 -f 動態輸出

docker ps -a
[root@localhost ~]# docker logs -f dd26578fb4a8

給容器授予超級許可權

[root@localhost ~]# docker run -it -d -p 88:80 --privileged=true nginx 

高階操作:

對映埠 -p

docker run -p 宿主機埠:容器內埠

[root@localhost ~]# docker run --rm --name my-nginx -d -p 86:80 llxuan518/nginx:v1.16.6

掛載資料卷 -v

docker run -v 宿主機:容器內部

[root@localhost ~]# docker run --rm --name my-nginx -d -p 85:80 -v /root/html:/usr/share/nginx/html  llxuan518/nginx:v1.16.6

傳遞環境變數 -e

docker run -e 環境變數key:環境變數value(可以傳多個)

[root@localhost ~]# docker run --rm  -e  E_OPTS=abcdef llxuan518/nginx:v1.16.6 printenv

容器內安裝軟體

/yum/apt-get/等等

檢視docker內容資訊

[root@localhost ~]# docker  inspect  dd26578fb4a8

下載(拉取)映象

[root@localhost ~]# docker pull  nginx

推送(上傳)映象

[root@localhost ~]# docker push habor.longxuan.vip/N520/nginx:v1

構建映象

[root@localhost ~]# docker build -t 新建的映象名  父映象:映象的tag   Dockerfile檔案所在路徑

檢視空間的佔用

[root@localhost ~]# docker system df

常見命令:

檢視映象,後可跟 "| grep 內容",可根據內容進行篩選。如:

[root@localhost ~]# docker images ps
[root@localhost ~]# docker images | grep nginx

docker images [OPTIONS] [REPOSITORY[:TAG]]OPTIONS說明:-a: 列出本地所有的映象--digests: 顯示映象的摘要資訊-f: 顯示滿足條件的映象--format: 指定返回值的模板檔案--no-trunc: 顯示完整的映象資訊-q: 只顯示映象ID

建立一個新的容器並執行一個命令docker run

docker run  [OPTIONS] IMAGE [COMMAND] [ARG...]OPTIONS說明:-d: 後臺執行容器,並返回容器ID-i: 以互動模式執行容器,通常與 -t 同時使用-p: 指定埠對映,格式為:主機(宿主)埠:容器埠-t: 為容器重新分配一個偽輸入終端,通常與 -i 同時使用--name "nginx": 為容器指定一個名稱-h "localhost": 指定容器的hostname-e spring.profiles.active="dev": 設定環境變數--env-file=[]: 從指定檔案讀環境變數-m :設定容器使用記憶體最大值--volume /home/data:/etc/data :  繫結一個卷and so on

例如:

[root@localhost ~]# docker run -d -t -p 80:80 -v /home/data:/usr/data --name nginx nginx:latest

建立一個新的容器但不啟動它

[root@localhost ~]# docker create containerName

停止一個執行的容器docker

[root@localhost ~]# docker stop containerName

重啟一個容器docker restart

[root@localhost ~]# docker restart containerName

啟動一個被停止的容器docker start

[root@localhost ~]# docker start containerName

docker ps命令

docker ps [OPTIONS]: 列出容器OPTIONS說明:-a: 顯示所有的容器,包括未執行的-f: 根據條件過濾顯示的內容--format: 指定返回值的模板檔案-l: 顯示最近建立的容器-n: 列出最近建立的n個容器--no-trunc: 不截斷輸出-q: 靜默模式,只顯示容器編號-s: 顯示總的檔案大小

檢視所有容器

[root@localhost ~]# docker ps -a

檢視正在執行的容器

[root@localhost ~]# docker ps

docker exec: 進入一個執行中的容器執行命令如:

[root@localhost ~]# docker exec -it 容器id sh or bash or /bin/bash表示在容器中開啟一個互動模式的終端

刪除一個容器,可加-f 表示強制

[root@localhost ~]# docker rm -fv

並刪除掛載卷刪除所有停止的容器:

[root@localhost ~]# docker rm $(docker ps -a -q)

刪除一個映象,可加-f 表示強制

[root@localhost ~]# docker rmi xxx

docker inspect : 獲取容器/映象的元資料如:

docker inspect [OPTIONS] NAME|ID [NAME|ID...]OPTIONS說明:-f: 指定返回值的模板檔案-s: 顯示總檔案大小-type: 為指定型別返回json資料
獲取正在執行的容器 nginx 的 IP:docker inspect --format='{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' nginx

docker kill: 殺死一個執行中的容器如:

[root@localhost ~]# docker kill nginx

docker logs: 獲取容器的日誌如:

[root@localhost ~]# docker logs -f -t 容器id or docker logs -f -t --tail=100 容器id

docker build: 命令用於使用 構建Dockerfile 映象

建立映象docker build [OPTIONS] PATH | URL | -OPTIONS說明:-f: 指定要使用的Dockerfile路徑-m: 設定記憶體最大值--memory-swap: 設定Swap的最大值為記憶體+swap,"-1"表示不限swap--no-cache: 建立映象的過程不使用快取--pull: 嘗試去更新映象的新版本-q: 安靜模式,成功後只輸出鏡像 ID--rm: 設定映象成功後刪除中間容器--shm-size: 設定/dev/shm的大小,預設值是64M--tag: 映象的名字及標籤,通常 name:tag 或者 name 格式;可以在一次構建中為一個映象設定多個標籤--network: 預設 default。在構建期間設定RUN指令的網路模式
[root@localhost ~]# docker build -t 映象標籤名 .
[root@localhost ~]# docker build -t nginx:latest .
[root@localhost ~]# docker build -f /path/xxx/Dockerfile .

docker tag: 標記本地映象,將其歸入某一倉庫

[root@localhost ~]# docker tag nginx nginx:old

將指定映象儲存成 tar 歸檔檔案,命令匯出的映象

[root@localhost ~]# docker save -o nginx.tar nginx:latest

或者使用

[root@localhost ~]# docker save > nginx.tar nginx:latest

匯入使用

[root@localhost ~]# docker load -i tar檔名

或者使用

[root@localhost ~]# docker load  < /opt/mysql-5.6.38-dockerimage.tar.gz

檢視docker環境資訊

[root@localhost ~]# docker info

檢視docker版本資訊

[root@localhost ~]# docker version

docker login: 登入一個Docker映象倉庫docker login -u 使用者名稱 -p 密碼,退出登入

[root@localhost ~]# docker logout

拉取或者更新指定映象 -a 拉取所有的tag的映象

[root@localhost ~]# docker pull nginx

將本地的映象上傳到映象倉庫

[root@localhost ~]# docker push