[英]Docker, multiple MySQL containers on same network - intermittent connection problems
[英]Runing multiple mysql containers with different port using host network
我有一個使用默認端口 3306 在主機上運行的 Mysql 服務器。我想使用網絡主機運行一個 MySQL docker 容器,但使用不同的端口。
我的配置是在 docker-compose 文件中定義的。 構建映像並嘗試運行容器后,它啟動和關閉並帶有端口沖突通知。
有沒有辦法在啟動前動態更改容器端口? 我不想使用網橋。
如果使用主機網絡是一項硬性要求,那么 Docker 空間中的任何內容都無法控制或限制服務使用或不使用哪些端口。 您需要更改特定於服務的配置文件、環境變量或命令行參數,以使其在其他地方偵聽。
特別是對於偵聽單個 TCP 端口的服務器(如大多數數據庫和基於 HTTP 的服務器),默認的 Docker 網橋/NAT 設置應該可以正常工作; 不需要像主機網絡和 macvlan 這樣的備用設置。 如果您願意使用標准設置,這很簡單:
version: '3'
services:
mysql:
image: mysql
ports: ['9999:3306'] # listen on host port 9999 instead
docker run --name 'dockername' -e MYSQL_ROOT_PASSWORD='password' -p 1000:3306 -d mysql
docker exec -it 'dockername' mysql -uroot -p
ALTER USER 'root' IDENTIFIED WITH mysql_native_password BY 'password'
flush privileges;
這里 1000 是您要運行 mysql docker 容器的端口。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.