-
確認容器是否正確啟動
首先,確保 MySQL 容器正在運行。可以使用docker ps
查看當前正在運行的容器。如果 MySQL 容器沒有啟動,可以嘗試以下命令啟動它:docker run -d --name mysql-container -e MYSQL_ROOT_PASSWORD=rootpassword mysql:8
這個命令會以
mysql:8
鏡像創建一個 MySQL 容器,且給MYSQL_ROOT_PASSWORD
設置為rootpassword
。容器命名為mysql-container
。 -
檢查是否為容器分配了網絡:
創建容器時,如果沒有明確指定網絡,Docker 會默認將其連接到
bridge
網絡,但可能沒有配置好相關的網絡設置。你可以通過以下命令檢查容器的網絡狀態:
docker network ls
然后檢查 MySQL 容器是否連接到某個網絡。
-
確認網絡設置
如果容器啟動正常,接下來檢查它的網絡設置。首先,確認容器是否在默認網絡上運行。如果沒有明確指定網絡,Docker 會自動將容器連接到bridge
網絡。你可以使用以下命令查看容器的詳細信息,并確保它有網絡配置:
docker inspect mysql-container
這會顯示詳細的 JSON 信息,其中應包括
NetworkSettings
部分。 -
獲取 IP 地址
若容器使用的是默認的bridge
網絡,你可以用下面的命令獲取容器的 IP 地址:docker inspect --format '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mysql-container
如果容器連接到自定義網絡,網絡名稱會顯示在
Networks
鍵下,確保替換正確的網絡名稱。 -
使用自定義網絡
如果你需要為容器創建并分配一個自定義網絡,可以先創建一個網絡:docker network create my-network
然后啟動容器時使用
--network
參數指定該網絡:docker run -d --name mysql-container --network my-network -e MYSQL_ROOT_PASSWORD=rootpassword mysql:8
這樣容器就會連接到
my-network
網絡,你可以使用相應的命令查詢該網絡中的 IP 地址。
在容器已經創建并運行的情況下為它分配網絡。
即使容器已經創建并正在運行,你仍然可以為它分配網絡。可以通過以下兩種方式來為已運行的容器分配網絡:
1. 使用?docker network connect
?將容器連接到一個網絡
你可以通過 docker network connect
命令將容器連接到一個現有的 Docker 網絡。假設你已經創建了一個名為 my-network
的網絡,并且你有一個名為 mysql-container
的正在運行的容器,你可以運行以下命令將容器連接到該網絡:
docker network connect my-network mysql-container
這會將 mysql-container
容器連接到 my-network
網絡。
2. 檢查容器的網絡配置
運行以上命令后,你可以通過以下命令確認容器是否成功連接到了新的網絡:
docker inspect mysql-container
查看輸出中的 NetworkSettings
部分,確保它顯示了連接到的網絡。
3. 斷開容器的網絡連接
如果需要,你也可以從某個網絡斷開容器的連接:
docker network disconnect my-network mysql-container
4. 使用自定義網絡配置容器的 IP 地址
如果你使用的是自定義網絡,你可以在 docker inspect
輸出中看到容器在該網絡上的 IP 地址:
docker inspect --format '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mysql-container