1 前言
本文介紹16個常用的Docker命令,先給大家有個簡單的概念,部分命令較為復雜。
2 常用命令
2.1 docker images
docker images 命令用于查看鏡像列表,docker images -a 命令用于查看所有鏡像。通過 docker build 命令構建的鏡像會存在子鏡像,此時可通過 docker images -a 命令查看構建的鏡像所包含的所有子鏡像;通過 docker pull 命令拉取的鏡像不存在子鏡像。
docker images 命令拉取的鏡像信息中,從左到右依次為鏡像名、版本號、鏡像ID、鏡像創建時間、鏡像大小,鏡像ID是鏡像唯一標識,可以通過 docker tag 命令給鏡像打標簽,生成多個不同鏡像名的鏡像。
2.2 docker login
docker login 命令用于登錄docker倉庫。拉取非公開鏡像倉庫的鏡像或者要往鏡像倉庫中推送鏡像時,需要先通過 docker login 命令登錄該鏡像倉庫,再進行操作。
docker login --username=<用戶名> registry.cn-hangzhou.aliyuncs.com
2.3 docker pull
docker pull 命令用于拉取鏡像。從docker官方鏡像倉庫拉取鏡像時無需登錄,直接傳入鏡像名和版本號即可拉??;從三方公開鏡像倉庫拉取鏡像時無需登錄,但需要傳入三方鏡像倉庫的域名、鏡像名和版本號才能拉??;從三方非公開鏡像倉庫拉取鏡像需要先通過 docker login 命令進行登錄,登錄成功后才能拉取鏡像。
從docker官方鏡像倉庫拉取
docker pull alpine:3.7
從三方公開鏡像倉庫拉取
docker pull registry.cn-hangzhou.aliyuncs.com/jiuxi-blockchain/alpine:3.7
從三方非公開鏡像倉庫拉取
docker login --username=<用戶名> registry.cn-hangzhou.aliyuncs.com
docker pull registry.cn-hangzhou.aliyuncs.com/jiuxi-blockchain/alpine:3.7
docker logout registry.cn-hangzhou.aliyuncs.com
2.4 docker tag
從三方鏡像倉庫拉取鏡像后,鏡像名會包含三方鏡像倉庫的域名,如下圖所示:
此時的鏡像名并非想要的鏡像名,此時可以通過 docker tag 命令給鏡像打標簽。打標簽時,必須傳入鏡像ID、新的鏡像名及鏡像版本號。
docker tag 6d1ef012b567 alpine:3.7
2.5 docker rmi
給鏡像打完標簽后,會同時存在兩個鏡像,如下圖所示:
原來拉取的鏡像名和自己想要的鏡像名同時存在,此時可通過 docker rmi 命令刪除自己不想要的鏡像名。刪除鏡像時,必須傳入鏡像名及鏡像版本號。
docker rmi registry.cn-hangzhou.aliyuncs.com/jiuxi-blockchain/alpine:3.7
2.6 docker logout
docker logout 命令用于退出鏡像倉庫。與鏡像倉庫操作結束后,出于安全考慮,要退出已登錄鏡像倉庫。
docker logout registry.cn-hangzhou.aliyuncs.com
2.7 docker run
docker run 命令用于啟動Docker容器。在啟動Docker容器時,可以指定容器名、端口映射、文件目錄映射、網絡橋接、環境變量、初使化腳本等很多參數,這里不做過多介紹,后續《Docker容器》文章中再對該命令做深入講解,本文給出最簡單的示例。
docker run -it alpine:3.7 sh
2.8 docker ps
docker ps 命令用于查看運行中容器,docker ps -a 命令用于查看已啟動容器,包括創建未運行及已停止運行的容器,如下圖所示:
docker ps 命令拉取的鏡像信息中,從左到右依次為容器ID、鏡像、啟動命令、容器創建時間、容器運行狀態、端口映射關系、容器名。容器運行狀態有三種狀態:Up 表示運行中;Created 表示容器被創建,但未能成功啟動;Exited 表示容器已停止運行。
docker ps -a
2.9 docker cp
docker cp 命令用于將服務器目錄中的指定文件復制到容器內的指定目錄中。
docker cp file1 <容器名>:/path2/
2.10 docker exec
docker exec 命令用于登錄到正在運行中的容器,登錄容器后可對該容器進行操作。
docker exec -it <容器名> bash
2.11 docker logs
docker logs 命令用于查看特定容器的日志,可通過docker logs -f命令持續追蹤日志,效果類似于 tail -f 命令。
docker logs -f <容器名>
2.12 docker start
docker start 命令用于啟動一個處于未運行狀態的容器,該命令只能啟動容器,不能修改容器的啟動參數。
docker start <容器名>
2.13 docker stop
docker stop 命令用于停止一個處于運行中狀態的容器。
docker stop <容器名>
2.14 docker rm
docker rm 命令用于刪除一個處于未運行狀態的容器。當你使用 docker rm 命令去刪除處于運行中狀態的容器時,命令會執行失敗。
docker rm <容器名>
2.15 docker build
docker build 命令用于創建一個鏡像。創建鏡像必須依托另外一個源鏡像,一般采用alpine、java、centos等基礎鏡像做為源鏡像,docker build 命令需要讀取Dockerfile文件,根據Dockerfile文件配置生成鏡像。創建鏡像過程這里不做過多介紹,后續《Docker自定義鏡像》文章中再對該命令做深入講解。
2.16 docker push
docker push 命令用于推送鏡像到鏡像倉庫,推送鏡像的操作,必須先進行登錄。
登錄docker官方鏡像倉庫:
docker login
登錄三方鏡像倉庫:
docker login --username=<用戶名> registry.cn-hangzhou.aliyuncs.com
推送到docker官方鏡像倉庫時無需指定鏡像倉庫的域名,推送到三方倉庫時,必須先通過 docker tag 命令給容器打標簽,將三方倉庫的域名加到鏡像名中,才能進行推送。
推送到docker官方鏡像倉庫:
docker push alpine:3.7
推送到三方鏡像倉庫
docker tag 6d1ef012b567 registry.cn-hangzhou.aliyuncs.com/jiuxi-blockchain/alpine:3.7
docker push registry.cn-hangzhou.aliyuncs.com/jiuxi-blockchain/alpine:3.7
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。