Docker運行命令示例 Docker是一個平臺,可讓你將應用程序開發,測試和部署為可在幾乎任何地方運行的可移植的自給自足的容器docker run命令從給定的鏡像創建一個容器,并使用給定的命令啟動該容器這是開始使用Docker時應熟悉的第一批命令之一。 在本文中,我們將使用官方的Nginx鏡像來展示運行Docker容器的各種方法Docker運行命令docker run命令采用以下形式:docker run [OPTIONS] IMAGE [COMMAND] [ARG...]。 從中創建容器的鏡像名稱是docker run命令的唯一必需參數如果本地系統上不存在該映像,則將其從注冊表中拉出如果未指定任何命令,則在運行容器時將執行Dockerfile的CMD或ENTRYPOINT指令中指定的命令。 從版本1.13開始,Docker CLI進行了重組,并且所有命令都被分組在與之交互的對象下由于run命令與容器交互,因此它現在是docker container的子命令新命令的語法如下:docker container run [OPTIONS] IMAGE [COMMAND] [ARG...]。 仍支持舊的1.13以前的語法在后臺,docker run命令是docker container run的別名鼓勵用戶使用新的命令語法所有docker container run選項的列表可在 Docker文檔頁面上找到。 在前臺中運行容器默認情況下,當docker run命令未提供任何選項時,根進程將在前臺啟動這意味著來自根進程的標準輸入,輸出和錯誤將附加到終端會話docker container run nginxNginx進程的輸出將顯示在你的終端上。 由于沒有與Web服務器的連接,因此終端為空要停止容器,請按CTRL+C終止正在運行的Nginx進程以分離(后臺)模式運行容器要在退出終端會話時保持容器運行,請以分離模式啟動容器這類似于在后臺運行 Linux進程。 使用-d選項啟動獨立的容器:docker container run -d nginx050e72d8567a3ec1e66370350b0069ab5219614f9701f63fcf02e8c8689f04fa 根進程終止后,分離的容器將停止你可以使用 docker container ls 命令列出正在運行的容器要將終端連接到分離的容器根進程,請使用 docker container attach令在退出后移除容器。 默認情況下,當容器退出時,其文件系統將保留在主機系統上--rm選項告訴docker run命令在容器自動退出時將其刪除:docker container run --rm nginx在容器退出后,Nginx映像可能不是清理容器文件系統的最佳示例。 此選項通常用于執行短期任務(例如測試或數據庫備份)的前臺容器設置容器名稱在Docker中,每個容器都通過UUID和名稱來標識默認情況下,如果未顯式設置,則容器名稱由Docker守護程序自動生成使用--name 選項為容器分配自定義名稱:docker container run -d --name my_nginx nginx容器名稱必須唯一如果你嘗試使用相同的名稱啟動另一個容器,則會收到類似以下錯誤:docker: Error response from daemon: Conflict. The container name 。 "/my_nginx" is already in use by container "..c". You have to remove (or rename) that container to be able to reuse that name. 運行docker container ls -a列出所有容器,然后查看它們的名稱:docker container lsCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9d695c1f5ef4 nginx "nginx -g daemon of…" 36 seconds ago Up 35 seconds 80/tcp my_nginx有意義的名稱對于在Docker網絡中或運行Docker CLI命令時引用容器很有用。 發布容器端口默認情況下,如果未發布任何端口,則只能從容器內部訪問容器中運行的進程發布端口意味著將容器端口映射到主機端口,以便這些端口可用于Docker外部的服務要發布端口,請使用-p選項,如下所示:-p host_ip:host_port:container_port/protocol 如果未指定host_ip,則默認為0.0.0.0如果未指定protocol,則默認為TCP發布多個端口,請使用多個-p選項要將容器中的TCP端口80(nginx)映射到主機localhost接口上的端口8080,請運行:。 docker container run --name web_server -d -p 8080:80 nginx你可以通過在瀏覽器中打開http://localhost:8080或在Docker主機上運行以下 curl 命令來驗證端口是否已發布:curl -I http://localhost:8080輸出將如下所示:HTTP/1 200 OKServer: nginx/6Date: Tue, 26 Nov 2019 22:55:59 GMT Content-Type: text/htmlContent-Length: 612Last-Modified: Tue, 19 Nov 2019 12:50:08 GMTConnection: keep-alive ETag: "5dd3e500-264"Accept-Ranges: bytes共享數據(安裝量)當容器停止時,該容器生成的所有數據都將被刪除Docker卷是使數據持久化并在多個容器之間共享的首選方法要創建和管理卷,請使用 -p選項,如下所示:-v host_src:container_dest:optionshost_src可以是主機或命名卷上文件或目錄的絕對路徑container_dest是容器上文件或目錄的絕對路徑選項可以是 rw(讀寫)和ro(只讀)如果未指定選項,則默認為rw為解釋它的工作原理,讓我們在主機上創建目錄 ,并在其中放置index.html文件:mkdir public_htmlecho"入門小站" > public_html/index.html。 接下來,將public_html目錄安裝到容器的/usr/share/nginx/html中:docker run --name web_server -d -p 8080:80 -v $(pwd)/public_html:/usr/share/nginx/html nginx 我們使用$(pwd)命令代替指定public_html目錄的絕對路徑,該命令顯示當前工作目錄現在,如果在瀏覽器中鍵入http://localhost:8080,則應該看到index.html文件的內容你也可以使用。 curl http://localhost:8080入門小站交互式運行容器處理bash之類的交互過程時,請使用-i和-t選項啟動容器-it選項告訴Docker將標準輸入保留在終端上并分配一個偽tty:docker container run -it nginx /bin/bash 容器的Bash外殼將連接到終端,命令提示符將更改:root@1da70f1937f5:/#現在,你可以與容器的外殼進行交互并在其中運行任何命令在此示例中,我們提供了命令(/bin/bash)作為執行的docker run 命令的參數,而不是Dockerfile中指定的命令結論Docker是打包和部署應用程序的標準,并且是CI/CD,自動化和DevOps的重要組成部分docker container run命令用于創建和運行Docker容器。 【Linux常用命令速查手冊】關注【入門小站】,后臺回復 「1001」 自取近期熱文如何在linux中使用終端命令行創建文件linux之cp,mv,rm參數過長Argumentlisttoolongli nux總結10大危險命令linux中刪除特殊文件linux中tty由來linux中為什么你應該添加交換空間swapLinux如何在Bash中將標準錯誤stderr重定向到stdout標準輸出Linux中 統計進程內存使用的神器linux系統中的IO
免責聲明:本站所有信息均搜集自互聯網,并不代表本站觀點,本站不對其真實合法性負責。如有信息侵犯了您的權益,請告知,本站將立刻處理。聯系QQ:1640731186
來源|潮州日報、潮湃新聞客戶端、潮州新聞網
編輯|高知意
審核|譚望舒