一台機器下,乙個docker容器執行nginx,並將容器中nginx的埠對映到主機的80埠的命令,如下,
$ docker run -it -p 80:80 nginx
測試a:宿主機192.168.0.108訪問192.168.0.108:80,如下,
$ curl 192.168.0.108:80
<
!doctype html>
...
測試b:其他機器192.168.0.109訪問192.168.0.108:80,如下,
$ curl 192.168.0.108:80
<
!doctype html>
...
兩台機器下,兩個docker容器執行nginx,並分別將容器中nginx的埠對映到其主機的80埠的命令,如下,
// 主機192.168.0.108
$ docker run -it -p 80:80 nginx
// 主機192.168.0.109
$ docker run -it -p 80:80 nginx
測試a:主機192.168.0.109的執行nginx的docker容器,訪問主機192.168.0.108的80埠。其中,主機192.168.0.108的80埠是由其nginx的docker容器對映而成的。
// 主機192.168.0.109
$ docker ps
container id image command created status ports names
af94cb2ea807 nginx "/docker-entrypoint.…" 4 minutes ago up 4 minutes 0.0.0.0:80->80/tcp strange_murdock
$ docker exec -it af94cb2ea807 /bin/bash
root@af94cb2ea807:/# curl 192.168.0.108:80
<
!doctype html>
...
docker,可以採用容器和其宿主機之間的埠對映的方法,達到跨主機的容器之間的通訊目的。但這種方法本質上還是對映到宿主機的埠進行宿主機之間通訊的方法,是一種虛擬ip之間間接通訊的方法。
如果要達到虛擬ip之間直接通訊的目的,技術上可行的方案是overlay network,產品比如docker swarm,kubernetes flannel等。
docker中nginx容器和php容器混合執行
該容器在文章 php環境容器大 制得,亦可用docker官方提供的php環境 啟動php容器 docker run name php1 v home wwwroot service config php config usr local php etc v home wwwroot home www...
docker容器中nginx日誌的分割
之前寫過一篇在宿主機上的nginx日誌分割,現在應為專案執行在docker容器裡面,但是容器中並不像宿主機那樣安裝了crontab定時任務,雖然可以將crontab打包進映象,但是應為專案沒有打包進去,所以只能只能選擇其他的解決方案了。下面我來說明一下這邊的解決方案 在建立好映象以後,還需要通過do...
Docker容器中Nginx訪問靜態檔案404
在根目錄下建立了data目錄,data目錄下分別有乙個www和img目錄 www存放靜態html,img存放 然後在nginx配置檔案中新增動靜分離的配置。啟動nignx後訪問192.168.244.128 80 img 一直是404,檢查了配置檔案確定沒有錯誤 這是因為在docker中啟動的nig...