Docker 安裝完成后, 正常使用 Docker 需要了解一些常用的操作指令.
- 查看系統 Docker 服務狀態
leo@ulinux:~$ systemctl status docker
如果 Docker 服務沒有啟動, 使用
sudo systemctl start docker
啟動 Docker 服務.
-
docker
運行權限問題
docker 安裝完成后不能用當前用戶進行運行, 提示權限問題時, 增加當前用戶到 docker 用戶組重啟即可
eo@ulinux:~$ sudo usermod -aG docker ${USER}
-
search
搜索鏡像
通常使用鏡像一種方式是自己創建, 一種是使用現成的. 現成已經發布的鏡像可以通過search
搜索, 選擇一個合適的下載下來使用
leo@ulinux:~$ docker search --filter "is-official=true" --filter "stars=3" hello-world
--filter
可以進行搜索過濾,
--filter "is-official=true"
: 只搜索官方鏡像.
--filter "stars=3"
: 評分3顆星以上的鏡像.
-
pull
下載鏡像
通過搜索鏡像, 可以得到一個需要的容器列表, 選擇一個容器名字, 進行下載
leo@ulinux:~$ docker pull hello-world
pull 可以帶 Tag 下載,
docker pull image[:tag]
, 默認的 tag 為latest
, 可以在 hub.docker.com上查看具體的鏡像的具體 tag.
-
image
關于鏡像
通常我們使用鏡像都是會指定鏡像的 tag, 如果不指定 tag 通常都是使用默認 tag, 也就是latest
, 通常的用法是 image[:tag]
-
images
查看本機已有的鏡像
leo@ulinux:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest 4ab4c602aa5e 2 months ago 1.84kB
docker images
命令列出本機所有的 docker 容器鏡像
REPOSITORY
: 表示鏡像的倉庫源
TAG
: 鏡像的標簽
IMAGEID
: 鏡像ID
CREATED
: 鏡像創建時間
SIZE
: 鏡像大小
-
run
運行鏡像
下載到本地的鏡像就可以通過run
執行進行運行了. 也可以直接進行運行, docker 會自動化去下載到本地.
leo@ulinux:~$ docker run hello-world
run
指令可以添加非常多的參數,
--name
: 運行鏡像時給這個鏡像取名, 方便停止的時候直接對這個名字的鏡像進行停用. 比如:--name myNginx
運行nginx
鏡像時取名為:myNginx
.--volume , -v
: 掛載一個目錄到容器里, 并且覆蓋容器里的目錄. 格式為-v host-path:image-path[:ro]
,ro
: 可選, 表示掛載的目錄只讀.--publish , -p
: 端口映射, 主機的端口映射到鏡像虛擬機的端口.--detach , -d
: 容器運行在守護進程中. 終端輸出容器ID結束.--interactive , -i
: 容器在前端運行, 和-d
參數相反,-i
一直等到用戶輸入.--tty , -t
: 掛載標準的輸入輸出, 通常和-i
搭配使用.- 官方文檔 查看更多的參數配置.
-
ps
查看本機當前運行的鏡像
leo@ulinux:~$ docker ps
-
stop
停用鏡像
對于使用 -d 參數運行的鏡像, 是安排在后臺運行的, 需要stop
指令進行停用.
leo@ulinux:~$ docker stop my-nginx
my-nginx
: 為run
鏡像的時候使用--name
參數進行設置的名稱, 未設置名稱可以使用ps
執行查看容器ID, 然后 使用docker stop ContainerID
停用.
-
start
啟用鏡像
對于使用 -d 參數運行的鏡像, 用stop
指令進行停用后, 可再次快速啟動, 根據--name
來啟動.
leo@ulinux:~$ docker start my-nginx
-
rm
刪除鏡像
對于run
時使用--name
的鏡像, 使用stop
停用后, 再run
的時候, 這個名字并未被釋放, 使用rm
操作進行刪除, 以便再次使用
leo@ulinux:~$ docker rm -v my-nginx
-
rmi
刪除本地鏡像
需要刪除已經下載的本地鏡像, 使用rmi
即可.
leo@ulinux:~$ docker rmi -f hello-world