Docker 容器詳細介紹和說明
- Docker 容器詳細介紹和說明
- Docker 安裝步驟(以Ubuntu為例):
- 使用Docker創建并運行容器:
- VSCode遠程連接Docker容器:
- 步驟1:配置Docker環境
- 步驟2:配置PyCharm
- 步驟3:測試連接
- docker 容器常用命令
Docker 容器詳細介紹和說明
Docker容器是什么?
Docker容器是一種輕量級、可移植的軟件打包和運行環境,它允許開發者將應用及其依賴以獨立的單元進行分發和部署。每個容器都運行在一個隔離的環境中,具有自己的文件系統、網絡空間和資源限制。容器與宿主機共享內核,但通過Linux命名空間(namespaces)和控制組(cgroups)技術實現了進程、網絡、文件系統等層面的隔離,使得多個容器可以在同一臺物理機或虛擬機上高效并行運行。
Docker容器的特點:
- 標準化: 保證應用在開發、測試、生產環境的一致性。
- 便攜性: 可以在任何安裝了Docker引擎的機器上運行。
- 資源隔離: 確保容器內的應用程序不會影響到其他容器或宿主機。
- 微服務架構友好: 適合構建基于微服務的應用程序,每個服務可以封裝在一個單獨的容器中。
- 快速啟動: 相對于傳統虛擬機,容器啟動速度快,資源消耗更少。
Docker容器的使用場景:
- 微服務架構中的服務部署
- CI/CD流程中的持續集成與交付
- 應用程序生命周期管理
- 面向開發者的本地開發環境設置
- 云原生應用的構建與發布
Docker 安裝步驟(以Ubuntu為例):
# 更新apt包索引
sudo apt-get update# 安裝必要的一些系統工具
sudo apt-get install -y \apt-transport-https \ca-certificates \curl \gnupg-agent \software-properties-common# 添加Docker的官方GPG密鑰
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -# 添加Docker的APT倉庫
sudo add-apt-repository \"deb [arch=amd64] https://download.docker.com/linux/ubuntu \$(lsb_release -cs) \stable"# 更新apt包索引,并安裝Docker Engine
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io# 啟動Docker服務并設置開機自啟
sudo systemctl start docker
sudo systemctl enable docker
使用Docker創建并運行容器:
# 拉取一個鏡像,例如官方的nginx鏡像
docker pull nginx# 創建并運行一個新容器
docker run --name my_nginx -d -p 8080:80 nginx# 上述命令含義:
# --name 給容器命名
# -d 表示后臺運行
# -p 將主機端口映射到容器端口# 測試訪問容器
curl http://localhost:8080# 查看正在運行的容器
docker ps# 停止并移除容器
docker stop my_nginx
docker rm my_nginx
VSCode遠程連接Docker容器:
為了能在VSCode中遠程連接并編輯運行在Docker容器內部的應用代碼,你可以使用VSCode的Remote Development擴展功能,具體步驟如下:
- 在VSCode中安裝插件
ms-vscode-remote.vscode-remote-extensionpack
,該擴展包含用于遠程開發的支持。 - 運行你的Docker容器時,確保掛載本地目錄到容器內作為工作區(如
-v /path/to/local/code:/workspace
),并且開啟持久化TTY以便于交互式登錄(如-it
)。 - 在VSCode的命令面板(Ctrl+Shift+P)中選擇“Remote-Containers: Attach to Running Container”,然后從列表中選擇你已運行的Docker容器。
- VSCode會自動加載容器內部的工作區,你現在可以直接在VSCode中編輯并運行容器內的項目代碼。
請注意,實際操作過程中可能需要根據不同的開發需求調整容器配置以及VSCode Remote-Containers擴展的設置。
在PyCharm中遠程連接Docker容器進行開發和調試,需要按照以下步驟操作:
步驟1:配置Docker環境
確保遠程服務器上已經正確安裝并運行了Docker,并且創建了一個帶有SSH服務的Docker容器。同時,容器內已安裝Python解釋器以及必要的庫。
# 在遠程服務器上創建并啟動一個帶有SSH服務的Docker容器
sudo docker run -d --name my_container \-p 2222:22 \ # 映射容器內部的22端口到主機的一個非默認端口(例如2222)-v /path/to/project:/app \ # 如果要編輯容器內的代碼,掛載本地項目目錄到容器內-e USER=root \ # 設置用戶-e PASSWD=my_password \ # 設置密碼,或者使用密鑰登錄image_name:tag# 進入容器,設置root用戶的密碼或公鑰認證(如果尚未完成)
docker exec -it my_container bash
passwd root # 更改密碼
# 或者添加公鑰到authorized_keys文件以啟用無密碼登錄
步驟2:配置PyCharm
步驟2.1:配置遠程解釋器
-
打開PyCharm,在菜單欄選擇
File
>Settings
(Windows/Linux) 或PyCharm
>Preferences
(macOS)。 -
在設置窗口中找到
Project: Your_Project_Name
>Project Interpreter
。 -
點擊齒輪圖標然后選擇
Add
>Add Remote...
-
選擇
SSH Interpreter
并點擊下一步。 -
填寫遠程服務器的 SSH 配置信息:
- 主機名:遠程服務器IP地址或域名
- 用戶名:遠程服務器的用戶名
- 端口號:SSH端口,如果是上面映射的非默認端口,則填寫2222
- Authentication type:根據實際情況選擇密碼或密鑰驗證
-
在下一個界面,選擇 “Use Docker Compose” 或 “Use Dockerfile” 來指定容器,或者直接選擇 “Existing interpreter” 并填入容器內的Python解釋器路徑(如
/usr/bin/python3
)。 -
如果是通過現有的解釋器連接,可能還需要映射容器內部的項目路徑到宿主機(即你的本地開發環境)。
步驟2.2:配置部署(可選)
如果你需要將本地項目的更改同步到容器內,可以配置Deployment。
- 在設置窗口,轉到
Build, Execution, Deployment
>Deployment
,點擊"+"添加一個新的SFTP或FTPS部署配置。 - 填寫遠程主機的相同SSH連接信息,并指定本地與遠程路徑的映射關系。
步驟3:測試連接
完成上述配置后,你可以嘗試測試連接是否成功。若能正常連接到遠程解釋器并在PyCharm中運行、調試容器內的代碼,則表示配置成功。
docker 容器常用命令
以下是一些Docker容器常用的命令示例及其詳細說明:
-
查看本地鏡像:
docker images
該命令用于顯示當前主機上所有的Docker鏡像列表,包括鏡像ID、標簽和大小等信息。
-
拉取鏡像:
docker pull ubuntu:latest
此命令從Docker Hub或其他配置的鏡像倉庫下載指定標簽(這里是latest)的Ubuntu鏡像。
-
創建并運行容器:
docker run -it --name my_container ubuntu:latest /bin/bash
這條命令將創建一個新的容器,并命名為
my_container
,使用的是最新版的Ubuntu鏡像。-it
參數表示以交互模式運行(分配一個終端),并在容器內啟動/bin/bash
shell。 -
列出正在運行的容器:
docker ps
列出所有正在運行的容器的基本信息。
-
列出所有容器(包括停止狀態的) :
docker ps -a
-
進入已運行的容器:
docker exec -it my_container bash
這個命令允許你在一個已經運行的名為
my_container
的容器中打開一個新的shell會話。 -
停止容器:
docker stop my_container
停止指定名稱或ID的容器。
-
重啟容器:
docker restart my_container
-
刪除容器:
docker rm my_container
刪除已停止的容器,若要強制刪除正在運行的容器,可以加上
-f
參數:docker rm -f my_container
-
查看容器日志:
docker logs my_container
顯示指定容器的日志輸出。
-
提交容器為新鏡像:
docker commit my_container new_image_name
將當前修改后的容器保存為新的鏡像。
-
更新容器資源限制:
docker update --cpu-shares 512 my_container
更新容器的CPU份額等資源限制。
以上是Docker容器操作中常見的命令,實際使用時可能需要根據具體需求調整參數和選項。