沒有示例的命令,將 container_name/image_name進行對應替換.
docker中有REPOSITORY, TAG, IMAGE,CONTAINER的概念
docker命令中的鏡像名,容器名 支持使用Tab鍵進行聯想
1 Docker容器
docker中默認的命令是對容器進行操作 ,現在看到容器相關的命令是默認沒有container的,簡單舉例: docker run是docker container run的簡寫,
1.1 docker run 運行一個新的容器
# 引數說明
## 常用引數
-d # 后臺運行容器,并回傳容器ID
-p # 指定埠映射,格式為:主機(宿主)埠:容器埠
--name # 為容器指定一個名稱;
-v # 系結一個卷,映射本地實際路徑 --volume
-a stdin # 指定標準輸入輸出內容型別,可選 STDIN/STDOUT/STDERR 三項
--cpuset="0-2" 或 --cpuset="0,1,2" # 系結容器到指定CPU運行
--dns 8.8.8.8 #指定容器使用的DNS服務器,默認和宿主一致
--dns-search example.com # 指定容器DNS搜索域名,默認和宿主一致
-e username="ritchie" # 設定環境變數
--env-file=[] # 從指定檔案讀入環境變數
--expose=[] # 開放一個埠或一組埠
-h "mars" # 指定容器的hostname
-i # 以互動模式運行容器,通常與 -t 同時使用
--link=[] # 添加鏈接到另一個容器
-m # 設定容器使用記憶體最大值
--net="bridge" # 指定容器的網路連接型別,支持 bridge/host/none/container: 四種型別
-P # 隨機埠映射,容器內部埠隨機映射到主機的埠 # 大寫P
--rm # 容器退出后自動清理本容器,用于創建臨時容器
-t # 為容器重新分配一個偽輸入終端,通常與 -i 同時使用
# 示例
# 使用鏡像nginx:latest以后臺模式啟動一個名為mynginx的容器,其中將容器外8080埠映射到容器內,主機目錄 /data 映射到容器內/data
docker run --name mynginx -d -p 8080:80 -v /data:/data nginx:latest
docker run -it nginx:latest /bin/bash # 以互動式命令啟動一個容器
1.2 docker create 創建容器但不啟動
引數命令同docker run
1.3 啟動/停止/重啟/殺掉容器
docker start container_name # 啟動一個停止狀態的容器
docker stop contaniner_name # 停止
docker restart container_name # 重啟
docker kill container_name
docker kill -s container_name # -s 向即將殺掉的容器內發送一個信號
1.4 洗掉容器
docker rm container_name
1.5 進入容器
通過容器名或者容器ID進入指定的容器,
docker exec -it container_name
docker exec -it container_id
# 引數說明
-i # 即使沒有附加也保持STDIN 打開
-t # 分配一個偽終端
-d # 采用在后臺運行的分離模式, 我自己用的比較少
# 以互動的模式執行容器內為/home/start_nginx.sh的腳本
docker exec -it mynginx /bin/sh /home/start_nginx.sh
1.6 查看容器運行狀態
docker ps # 列出容器
docker ps -a # 列出所有容器(含未運行容器)
# 引數說明
-f # 根據條件過濾顯示的內容
--format # 指定回傳值的模板檔案
-l # 顯示最近創建的容器
-n # 列出最近創建的n個容器
--no-trunc # 不截斷輸出
-q # 靜默模式,只顯示容器編號
-s # 顯示總的檔案大小
# 說明
docker ps命令執行后,顯示的COMMAND列顯示的是 啟動容器時運行的命令
2 鏡像
2.1 本地鏡像管理
2.1.1 加載本地鏡像
docker load < ***.tar # 匯入本地的docker鏡像
docker load -i ***.tar
docker load --input ***.tar
2.1.2 保存鏡像
docker save -o out_image.tar test/ubuntu:v3
docker save test/ubuntu:v3 > out_image.tar
# 更多說明
docker save 保存的是鏡像(image),docker export 保存的是容器(container);
docker load 用來載入鏡像包,docker import 用來載入容器包,但兩者都會恢復為鏡像;
docker load 不能對載入的鏡像重命名,而 docker import 可以為鏡像指定新名稱,
2.1.3 查看本地鏡像
docker images # 列出本地鏡像
docker images test # 列出本地鏡像中倉庫repository為test的鏡像
# 引數說明
-a # 列出本地所有的鏡像
--digests # 顯示鏡像的摘要資訊
-f # 顯示滿足條件的鏡像
--format # 指定回傳值的模板檔案
--no-trunc # 顯示完整的鏡像資訊
-q # 只顯示鏡像ID
2.1.4 洗掉本地鏡像
docker image rm image_name # 洗掉本地鏡像
docker image rm -f image_name # 強制洗掉本地鏡像
docker rmi image_name1 image_name2 # 洗掉多個本地鏡像
docker rmi -f image_name1 image_name2 # 強制洗掉多個本地鏡像
# docker pure命令
docker image pure # 洗掉所有未被 tag 標記和未被容器使用的鏡像
docker image prune -a # 洗掉所有未被容器使用的鏡像
docker container prune # 洗掉所有停止運行的容器
2.1.5 創建鏡像
docker build [OPTIONS] PATH | URL | -
# 引數說明
--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 # 嘗試去更新鏡像的新版本
--quiet, -q # 安靜模式,成功后只輸出鏡像 ID
--rm # 設定鏡像成功后洗掉中間容器
--shm-size # 設定/dev/shm的大小,默認值是64M
--ulimit # Ulimit配置
--squash # 將 Dockerfile 中所有的操作壓縮為一層
--tag, -t # 鏡像的名字及標簽,通常 name:tag 或者 name 格式;可以在一次構建中為一個鏡像設定多個標簽
--network # 默認 default,在構建期間設定RUN指令的網路模式
# 示例
docker build -t test/ubuntu:v1 . # 使用當前目錄的 Dockerfile 創建鏡像,標簽為 test/ubuntu:v
docker build github.com/creack/docker-firefox # 使用URL的 Dockerfile 創建鏡像,
2.2 遠程鏡像Docker Hub
遠程鏡像的概念可以參照git,區別在于git存盤的是代碼,遠程鏡像庫存盤的是docker鏡像,
2.2.1 docker pull
docker pull java
docker pull -a java # 下載REPOSITORY為java的所有鏡像
2.2.2 docker push
docker push mynginx:v1 # 上傳本地鏡像mynginx:v1到遠程鏡像庫
3 Docker版本資訊
docker info # 顯示docker詳細資訊
docker version # 顯示docker版本資訊
【參考】
1、Docker 命令大全
2、【官網】Use the Docker command line
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/342323.html
標籤:其他
下一篇:阿里云配置SSH密鑰連接
