docker命令詳解
阿新 • • 發佈:2022-06-01
1、docker --help詳解
[root@localhost test]# docker --help Usage: docker [OPTIONS] COMMAND # docker [可選項] 命令 A self-sufficient runtime for containers # 容器的自足執行時 Options: --config string Location of client config files (default "/root/.docker") # 客戶端配置檔案的位置 -c, --context string Name of the context to use to connect to the daemon (overrides DOCKER_HOST env var and default context set with "docker context use") # 用於連線到守護程序的上下文的名稱(覆蓋DOCKER_HOST的環境變數,並且用“ docker context use”設定預設上下文) -D, --debug Enable debug mode # 開啟debug模式 -H, --host list Daemon socket(s) to connect to # 要連線的守護程序socket -l, --log-level string Set the logging level ("debug"|"info"|"warn"|"error"|"fatal") (default "info") # 設定日誌級別 --tls Use TLS; implied by --tlsverify # 使用TLS --tlscacert string Trust certs signed only by this CA (default "/root/.docker/ca.pem") # 僅信任該CA簽名的證書 --tlscert string Path to TLS certificate file (default "/root/.docker/cert.pem") # TLS證書檔案的路徑 --tlskey string Path to TLS key file (default "/root/.docker/key.pem") # TLS金鑰檔案的路徑 --tlsverify Use TLS and verify the remote # 使用TLS並驗證遠端 -v, --version Print version information and quit # 列印版本資訊並退出 Management Commands: builder Manage builds config Manage Docker configs container Manage containers context Manage contexts image Manage images manifest Manage Docker image manifests and manifest lists network Manage networks node Manage Swarm nodes # 管理叢集節點 plugin Manage plugins secret Manage Docker secrets service Manage services stack Manage Docker stacks swarm Manage Swarm system Manage Docker trust Manage trust on Docker images # 管理對Docker映象的新人 volume Manage volumes # 管理卷 Commands: attach Attach local standard input, output, and error streams to a running container # 當前 shell 下 attach 連線指定執行映象 build Build an image from a Dockerfile # 通過 Dokcerfile 定製映象 commit Create a new image from a container's changes # 提交當前容器為新的映象 cp Copy files/folders between a container and the local filesystem # 從容器中拷貝指定檔案或目錄到宿主機中 create Create a new container # 建立一個新的容器,同 run 但是不啟動容器 diff Inspect changes to files or directories on a container's filesystem # 檢視 Docker 容器變化 events Get real time events from the server # 從 Docker 服務獲取容器實時時間 exec Run a command in a running container # 在已存在的容器上執行命令 export Export a container's filesystem as a tar archive # 到處容器的內容流作為一個 tar 歸檔檔案(對應 import) history Show the history of an image # 顯示映象形成歷史 images List images # 列出系統當前映象 import Import the contents from a tarball to create a filesystem image # 從 tar 包中的內容建立一個新的檔案系統映像(對應 export) info Display system-wide information # 顯示系統相關資訊 inspect Return low-level information on Docker objects # 檢視容器詳細資訊 kill Kill one or more running containers # kill 指定 docker 容器 load Load an image from a tar archive or STDIN # 從一個 tar 包中載入映象(對應 save) login Log in to a Docker registry # 註冊或登入一個 docker 源伺服器 logout Log out from a Docker registry # 從當前 Docker registry 退出 logs Fetch the logs of a container # 輸出當前容器日誌資訊 pause Pause all processes within one or more containers # 暫停容器 port List port mappings or a specific mapping for the container # 檢視對映埠對應的容器內部源埠 ps List containers # 列出容器列表 pull Pull an image or a repository from a registry # 從 docker 映象源伺服器拉去指定映象或者庫映象 push Push an image or a repository to a registry # 推送指定映象或者庫映象至 docker 源伺服器 rename Rename a container # 重新命名一個容器 restart Restart one or more containers # 重啟一個或多個容器 rm Remove one or more containers # 移除一個或多個容器 rmi Remove one or more images # 移除一個或多個映象(無容器使用該映象才可移除,否則需刪除相關容器才可繼續或 -f 強制執行) run Run a command in a new container # 建立一個新的容器並執行一個命令 save Save one or more images to a tar archive (streamed to STDOUT by default) # 儲存一個映象為一個 tar 包(對應load) search Search the Docker Hub for images # 在 docker hub 中搜索映象 start Start one or more stopped containers # 啟動容器 stats Display a live stream of container(s) resource usage statistics # 顯示實時的容器資源使用情況統計流 stop Stop one or more running containers # 停止容器 tag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE # 給源中的映象打標籤 top Display the running processes of a container # 檢視容器中執行的程序資訊 unpause Unpause all processes within one or more containers # 取消暫停容器 update Update configuration of one or more containers # 為容器更新配置 version Show the Docker version information # 檢視 docker 版本號 wait Block until one or more containers stop, then print their exit codes # 阻塞直到一個或多個容器停止,然後列印其退出程式碼,即擷取容器停止時的退出狀態值 Run 'docker COMMAND --help' for more information on a command.
2、docker常用命令
執行一個容器
docker run -it -p 8088:8088 -p 8089:8089 -p 8090:9090 -v /root/soft/docker:/root/soft/docker -v /root/soft/dockertt:/root/soft/dockertt loen/rc /bin/bash 命令的格式: Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] -a, --attach=[] 登入容器(以docker run -d啟動的容器) -c, --cpu-shares=0 設定容器CPU權重,在CPU共享場景使用 --cap-add=[] 新增許可權,許可權清單詳見:http://linux.die.net/man/7/capabilities --cap-drop=[] 刪除許可權,許可權清單詳見:http://linux.die.net/man/7/capabilities --cidfile="" 執行容器後,在指定檔案中寫入容器PID值,一種典型的監控系統用法 --cpuset="" 設定容器可以使用哪些CPU,此引數可以用來容器獨佔CPU -d, --detach=false 指定容器運行於前臺還是後臺 --device=[] 新增主機裝置給容器,相當於裝置直通 --dns=[] 指定容器的dns伺服器 --dns-search=[] 指定容器的dns搜尋域名,寫入到容器的/etc/resolv.conf檔案 -e, --env=[] 指定環境變數,容器中可以使用該環境變數 --entrypoint="" 覆蓋image的入口點 --env-file=[] 指定環境變數檔案,檔案格式為每行一個環境變數 --expose=[] 指定容器暴露的埠,即修改映象的暴露埠 -h, --hostname="" 指定容器的主機名 -i, --interactive=false 開啟STDIN,用於控制檯互動 --link=[] 指定容器間的關聯,使用其他容器的IP、env等資訊 --lxc-conf=[] 指定容器的配置檔案,只有在指定--exec-driver=lxc時使用 -m, --memory="" 指定容器的記憶體上限 --name="" 指定容器名字,後續可以通過名字進行容器管理,links特性需要使用名字 --net="bridge" 容器網路設定,待詳述 -P, --publish-all=false 指定容器暴露的埠,待詳述 -p, --publish=[] 指定容器暴露的埠,待詳述 --privileged=false 指定容器是否為特權容器,特權容器擁有所有的capabilities --restart="" 指定容器停止後的重啟策略,待詳述 --rm=false 指定容器停止後自動刪除容器(不支援以docker run -d啟動的容器) --sig-proxy=true 設定由代理接受並處理訊號,但是SIGCHLD、SIGSTOP和SIGKILL不能被代理 -t, --tty=false 分配tty裝置,該可以支援終端登入 -u, --user="" 指定容器的使用者 -v, --volume=[] 給容器掛載儲存卷,掛載到容器的某個目錄 --volumes-from=[] 給容器掛載其他容器上的卷,掛載到容器的某個目錄 -w, --workdir="" 指定容器的工作目錄 >>>>>> 詳細講解 埠暴露 -P引數:docker自動對映暴露埠; docker run -d -P training/webapp <span style="color:#009900;">//docker自動在host上開啟49000到49900的埠,對映到容器(由映象指定,或者--expose引數指定)的暴露埠;</span> -p引數:指定埠或IP進行對映; docker run -d -p 5000:80 training/webapp <span style="color:#009900;">//host上5000號埠,對映到容器暴露的80埠;</span> docker run -d -p 127.0.0.1:5000:80 training/webapp <span style="color:#009900;">//host上127.0.0.1:5000號埠,對映到容器暴露的80埠;</span> docker run -d -p 127.0.0.1::5000 training/webapp <span style="color:#009900;">//host上127.0.0.1:隨機埠,對映到容器暴露的80埠;</span> docker run -d -p 127.0.0.1:5000:5000/udp training/webapp <span style="color:#009900;">//繫結udp埠;</span> 網路配置 --net=bridge: <span style="color:#009900;">//使用docker daemon指定的網橋</span> --net=host: <span style="color:#009900;">//容器使用主機的網路</span> --net=container:NAME_or_ID:<span style="color:#009900;">//使用其他容器的網路,共享IP和PORT等網路資源</span> --net=none: <span style="color:#009900;">//容器使用自己的網路(類似--net=bridge),但是不進行配置</span>
關閉執行中的容器
docker stop 容器ID
啟動一個已經停止的容器
docker start 容器ID
重啟一個容器
docker restart 容器ID
進入一個執行中的容器
docker attach 容器ID
顯示全部容器
docker ps -a
顯示當前執行的容器
docker ps
檢視本地映象
docker images
刪除所有映象
docker rmi $(docker images | grep -v RESPOSITORY | awk '{print $3}')
構建容器
docker build -t 映象名稱 . # 後面的. 指的是當前資料夾 (其實是Dockerfile存放的資料夾) # 建立映像檔案。–rm 選項是告訴Docker,在構建完成後刪除臨時的Container,Dockerfile的每一行指令都會建立一個臨時的Container,一般這些臨時生成的Container是不需要的 docker build --rm=true -t loen/lamp .
刪除容器
docker rm 容器ID
刪除所有容器
docker rm $(docker ps -a)
檢視歷史
docker history 映象ID
匯出容器
docker export 容器ID > xxx.tar
把 mynewimage 映象儲存成 tar 檔案
docker save myimage | bzip2 -9 -c> /home/save.tar.bz2
載入 myimage 映象
bzip2 -d -c < /home/save.tar.bz2 | docker load