連結 Docker 容器
我必須將我的 WordPress 安裝遷移到我自己的伺服器上才能使 SSL 正常工作。它最初在 GoDaddy 共享主機上,不允許安裝外部 SSL 證書。
由於有點偏執並了解安全性,我想在 Docker 容器內執行服務,以限制最壞情況下的損害。
我不確定的是如何連接 Docker 容器。例如,我有一個負責執行 MySQL/MariaDB 的 Docker 容器,但我不知道如何與另一個執行 FastCGI 的 Docker 容器共享該服務,該容器託管和執行我的 WordPress PHP 程式碼。
我目前在 Docker 容器外執行的 Web 伺服器(NGINX)將事物代理到 Docker 容器上的暴露埠不會有任何問題,但是 FastCGI 伺服器(即:PHP)如何能夠訪問 MySQL容器?
是否有詳細說明如何在 Docker 中配對多個獨立服務的指南?
實際上 Docker 並沒有做任何虛擬化,它只是一個處理圖像並使用 LXC 容器虛擬化來執行它們的工具。我猜您實際上是在這裡尋找 LXC 及其功能。LXC 可以做虛擬網路,MySQL 可以通過網路訪問。您唯一需要的是將建構塊連接在一起;)。
在典型設置中,每台主機都有自己的 IP 地址和一組開放埠,並且每台主機都可以通過虛擬網路訪問其他主機的 TCP/IP 服務。安全性由 Linux 核心處理。處理安全性的一種方法是使用基於 iptables 的老式防火牆。但可能還有其他基於selinux標籤的方式。
Docker 容器的工作方式是預設情況下它們是隔離的,除非您以其他方式設置它們。
要回答您的問題,您可以打開所需的埠,並通過這些埠連結容器,因此它們僅通過您指定的埠進行通信。
在 Dockerfile 中指定時,此命令稱為“EXPOSE”:http ://docs.docker.io/reference/builder/#expose
EXPOSE 41000
啟動容器時,您也可以在啟動時傳遞要公開的埠(覆蓋原始 Dockerfile 中可能指定的埠):
sudo docker run -p 41000:41000 -d <your username>/<your image name>
-p,–發布=
$$ $$ 將容器的埠發佈到主機格式:ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort(使用 ‘docker port’ 查看實際映射)
參見連結,http://docs.docker.io/use/working_with_links_names/#working-with-links-names
關於 Wordpress 和 Docker 的進一步閱讀: