對于需要同時運行多個不同環境的開發者來說,Docker往往是一個非常好用的工具。但是,有時候我們需要在同一個主機上運行多個相同環境的Docker容器,這時候如何避免端口號、目錄沖突就成了一個問題。下面我們來看看幾種解決方法。
方法一:通過命令行手動指定端口號。
docker run -p 8080:80 -d nginx docker run -p 8081:80 -d nginx
方法二:通過Docker-compose來管理多個容器。
version: '3.7' services: nginx: image: nginx:latest ports: - "8080:80" nginx2: image: nginx:latest ports: - "8081:80"
方法三:通過Docker Swarm模式來管理多個容器。
docker swarm init docker service create --name nginx --publish published=8080,target=80 --replicas 2 nginx
在以上方法中,方法一是最簡單粗暴的方式,但是在端口多時會比較繁瑣。方法二相對來說要更加優雅一些,而且可以方便的通過Docker-compose來管理整個容器。而方法三則是相對高級一些的方法,但是不適合小規模的項目,適合于需要進行大規模的容器管理的場景。