Docker search
docker search 命令用於在 Docker Hub 上搜索鏡像,語法如下:
docker search [OPTIONS] TERM
常用的選項包括:
--filter, -f: 根據條件過濾鏡像,例如--filter "stars=3"可以只顯示星級為 3 的鏡像。--format: 指定輸出格式,例如--format "table {{.Name}}\t{{.Description}}"可以將輸出格式化為表格。
例如,要搜索名為 nginx 的鏡像,可以使用以下命令:
docker search nginx
搜索結果將以表格形式顯示,包括鏡像名稱、描述、星級、官方鏡像標誌等信息。
另外,若要搜索本地鏡像而非 Docker Hub 上的鏡像,則需要在搜索命令前加上 docker image 前綴,例如:
docker image search ubuntu
Docker pull
docker pull命令用於從Docker Hub或其他Docker鏡像倉庫拉取一個鏡像到本地,語法為:
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
其中,OPTIONS為docker pull命令的可選參數,可用參數列表詳見docker官方文檔。NAME表示需要拉取的鏡像的名稱,TAG為鏡像的標籤(版本),DIGEST為鏡像的哈希值。
例如,要拉取官方的Ubuntu操作系統鏡像,可以使用以下命令:
docker pull ubuntu
如果需要指定Ubuntu操作系統的版本為18.04,可以使用以下命令:
docker pull ubuntu:18.04
執行該命令後,Docker將從Docker Hub上下載並保存Ubuntu 18.04操作系統的鏡像到本地。
Docker run
docker run 命令用來啓動一個新的容器,它的語法格式如下:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
其中,OPTIONS 是可選的容器配置項,IMAGE 是要啓動的容器鏡像名稱或者 ID,COMMAND 是容器啓動後要執行的命令,ARG 表示傳遞給命令的參數。
下面是一些常見的 docker run 命令的用法示例:
-
以交互式方式啓動容器:
docker run -it ubuntu /bin/bash在這個命令中,
-it表示以交互式和偽終端的方式運行容器,ubuntu是要啓動的容器鏡像,/bin/bash是容器啓動後要執行的命令。 -
指定容器名稱:
docker run --name my_container ubuntu在這個命令中,
--name指定了容器的名稱為my_container。 -
掛載主機目錄到容器內部:
docker run --name my_container -v /host/path:/container/path ubuntu在這個命令中,
-v參數用來將主機上的/host/path目錄掛載到容器內部的/container/path目錄中。 -
暴露容器端口:
docker run --name my_container -p 80:80 nginx在這個命令中,
-p參數用來將容器內部的 80 端口映射到主機的 80 端口上。 -
設置容器啓動時的環境變量:
docker run --name my_container -e MYSQL_ROOT_PASSWORD=123456 mysql在這個命令中,
-e參數用來設置容器的環境變量,這裏設置了 MySQL 的 root 用户的密碼為123456。
Docker exec
docker exec 命令用於在正在運行的 Docker 容器中運行指定的命令。
使用 docker exec 命令的格式如下:
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
其中,OPTIONS 可以省略,常用的選項如下:
-i:保持標準輸入打開,使得可以與容器交互。-t:分配一個偽終端,使得可以與容器交互。
CONTAINER 是要操作的容器的名稱或 ID。
COMMAND 是要在容器內運行的命令。
ARG... 是命令的參數。
示例:
-
在名為
mycontainer的容器中執行命令/bin/bash並分配一個偽終端:docker exec -it mycontainer /bin/bash -
在名為
mycontainer的容器中執行命令ls -l:docker exec mycontainer ls -l
注意:要使用 docker exec 命令,容器必須已經啓動,並且必須有一個運行中的進程。
Docker logs
docker logs 命令用於查看 Docker 容器的日誌信息。它的基本用法如下:
docker logs [OPTIONS] CONTAINER
其中,OPTIONS 可以是以下選項:
-f:跟蹤容器日誌輸出,類似於tail -f命令。--tail:僅顯示最近的幾行日誌。例如,--tail 10僅顯示最近的 10 行日誌。--since:僅顯示指定時間之後產生的日誌。例如,--since 2020-01-01僅顯示 2020 年 1 月 1 日之後產生的日誌。--until:僅顯示指定時間之前產生的日誌。例如,--until 2020-01-01僅顯示 2020 年 1 月 1 日之前產生的日誌。
CONTAINER 是容器的名稱或 ID。例如,要查看名為 webapp 的容器的日誌,可以使用以下命令:
docker logs webapp
如果要跟蹤日誌輸出,可以使用 -f 參數:
docker logs -f webapp
如果僅想查看最近的 10 行日誌,可以使用 --tail 參數:
docker logs --tail 10 webapp
如果想查看 2020 年 1 月 1 日之後的日誌,可以使用 --since 參數:
docker logs --since 2020-01-01 webapp
如果想查看 2020 年 1 月 1 日之前的日誌,可以使用 --until 參數:
docker logs --until 2020-01-01 webapp
Docker cp
docker cp命令用於在docker容器和本地文件系統之間複製文件或目錄。其基本語法如下:
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH
docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH
其中,OPTIONS指定一些選項,CONTAINER指定容器的名稱或ID,SRC_PATH指定容器內的源路徑,DEST_PATH指定本地或容器內的目標路徑。
例如,將容器內的文件複製到本地:
docker cp mycontainer:/app/file.txt /home/user/
將本地文件複製到容器內:
docker cp /home/user/file.txt mycontainer:/app/
常用的選項包括:
- -a:將所有文件屬性(包括權限、所有者和時間戳)一併複製
- -L:針對符號鏈接,將鏈接源文件複製到目標文件中
- --follow-link:跟隨符號鏈接進行復制
- --help:獲取幫助信息
注意,如果容器正在運行,則複製的文件可能會被鎖定,需要先停止容器再執行復制命令。
Docker network
Docker網絡是Docker中一個重要的概念之一,它允許Docker容器之間相互通信,也能與外部網絡進行交互。下面是Docker網絡的使用步驟:
- 創建Docker網絡
可以使用以下命令來創建Docker網絡:
$ docker network create my-network
這將創建名為my-network的新Docker網絡。
- 運行Docker容器並將其連接到網絡
可以使用以下命令來運行Docker容器並將其連接到網絡:
$ docker run --name my-container --network my-network -d my-image
這將創建一個名為my-container的新容器,並將其連接到my-network網絡中。
- 連接現有的Docker容器到網絡
可以使用以下命令將現有的Docker容器連接到網絡:
$ docker network connect my-network my-container
其中my-network是要連接到的網絡名稱,my-container是要連接到網絡的容器的名稱。
- 列出網絡
可以使用以下命令列出所有可用的Docker網絡:
$ docker network ls
- 刪除網絡
可以使用以下命令刪除Docker網絡:
$ docker network rm my-network
這將刪除名為my-network的Docker網絡。
Docker volume
Docker volume是用來存儲數據的一種機制,可以在容器和主機之間共享數據。下面是Docker volume的使用方法:
- 創建volume
可以通過命令行或者Dockerfile來創建volume。比如使用命令docker volume create my_volume來創建一個名為my_volume的volume。
- 掛載volume到容器
使用docker run命令時,加上-v參數可以將volume掛載到容器中。例如:
docker run -v my_volume:/app/data my_image
- 查看volume
可以使用docker volume ls命令來查看所有已經創建的volume。如果想查看某個volume的詳細信息,可以使用docker volume inspect命令。例如:
docker volume inspect my_volume
- 刪除volume
要刪除volume,可以使用docker volume rm命令,例如:
docker volume rm my_volume
需要注意的是,如果某個volume正在被某個容器使用,那麼不能直接刪除它,需要先將其從該容器中移除。
Docker stop
docker stop 命令用於停止正在運行的容器。它的語法如下:
docker stop [OPTIONS] CONTAINER [CONTAINER...]
其中,OPTIONS 可以是:
-t, --time:指定停止容器前的等待時間(單位為秒)。--time-format:指定等待時間的格式,可以是float(小數),ns(納秒),µs(微秒),ms(毫秒),s(秒),m(分)或h(小時)。--help:顯示幫助信息。
CONTAINER 是要停止的容器的名稱或 ID。可以同時停止多個容器,只需在命令中列出它們的名稱或 ID 即可。
示例:
停止名為 my-container 的容器:
docker stop my-container
停止 ID 為 1234567890ab 和 abcdef123456 的兩個容器,並等待 10 秒:
docker stop -t 10 1234567890ab abcdef123456
Docker rm
docker rm命令用於刪除一個或多個已有的容器。具體用法為:
docker rm [OPTIONS] CONTAINER [CONTAINER...]
常用的選項包括:
-f: 強制刪除一個運行中的容器。-v: 刪除容器時,同時刪除容器掛載卷的數據卷。
例如,刪除名為mycontainer的容器:
docker rm mycontainer
刪除 ID 為1234和5678的容器:
docker rm 1234 5678
刪除所有已停止的容器及其數據卷:
docker rm -v $(docker ps -a -q -f status=exited)
Docker rmi
docker rmi命令用於刪除一個或多個本地鏡像。其語法為:
docker rmi [OPTIONS] IMAGE [IMAGE...]
其中,OPTIONS為可選項,常用的選項有:
-f/--force:強制刪除鏡像,即使有容器正在使用該鏡像。-a/--all:刪除所有本地鏡像,包括被標記為<none>的鏡像。
IMAGE為需要刪除的鏡像名稱或鏡像 ID。可以同時刪除多個鏡像,多個鏡像名稱或鏡像 ID 之間用空格分隔。
示例:
- 刪除一個鏡像:
docker rmi redis
- 強制刪除一個鏡像:
docker rmi -f redis
- 刪除多個鏡像:
docker rmi redis nginx php
- 刪除所有本地鏡像:
docker rmi -a
Docker save
docker save 命令用於將 Docker 鏡像保存為 tar 文件。它的語法為:
docker save [OPTIONS] IMAGE [IMAGE...]
其中,OPTIONS 包括:
-o, --output: 指定輸出文件路徑及名稱。--help: 顯示幫助信息。
示例:
將鏡像 nginx:latest 保存為 nginx.tar 文件:
docker save -o nginx.tar nginx:latest
注意:docker save 命令保存的是整個鏡像,包括所有的歷史層和元數據,因此保存的文件可能會很大。
歡迎關注同名公眾號: 遙遙知識庫
或訪問同名網站: 遙遙知識庫