簡體   English   中英

如何使用docker-compose設置可訪問的特定IP地址

[英]How to set a specfic ip address with docker-compose who's accessible

目前,我在Docker上玩耍,我很喜歡它,但是如何使用docker-compose設置IP地址呢?

這是我的問題,在docker-compose網站上是Wordpress的快速入門示例。

version: '2'
services:
  db:
    image: mysql:5.7
    volumes:
   - "./.data/db:/var/lib/mysql"
 restart: always
 environment:
   MYSQL_ROOT_PASSWORD: wordpress
   MYSQL_DATABASE: wordpress
   MYSQL_USER: wordpress
   MYSQL_PASSWORD: wordpress

 wordpress:
   depends_on:
     - db
   image: wordpress:latest
   links:
     - db
   ports:
     - "8000:80"
   restart: always
   environment:
     WORDPRESS_DB_HOST: db:3306
     WORDPRESS_DB_PASSWORD: wordpress

現在,我希望Wordress-Site在IP地址10.10.10.25下可用,我該怎么辦?

Docker-compose可能嗎?

編輯

因此,我嘗試建立我的網絡,但是它不起作用。

 version: '2'
    services:
      db:
        image: mysql:5.7
        volumes:
          - "./.data/db:/var/lib/mysql"
        restart: always
        environment:
          MYSQL_ROOT_PASSWORD: wordpress
          MYSQL_DATABASE: wordpress
          MYSQL_USER: wordpress
          MYSQL_PASSWORD: wordpress
        networks:
          mynet:
            ipv4_address: 172.25.0.102
      wordpress:
        depends_on:
          - db
        image: wordpress:latest
        links:
          - db
        ports:
          - "8000:80"
        restart: always
        environment:
          WORDPRESS_DB_HOST: db:3306
          WORDPRESS_DB_PASSWORD: wordpress
        networks:
          mynet:
            ipv4_address: 172.25.0.101
    networks:
      mynet:
        driver: bridge
        ipam:
          config:


 subnet: 172.25.0.0/24

它僅收到以下錯誤消息。

wordpress_1 | 警告:mysqli :: mysqli():(HY000 / 2002):連接被拒絕-在第19行wordpress_1 | wordpress_1 | MySQL連接錯誤:(2002)連接被拒絕wordpress_1 | AH00558:apache2:無法使用172.25.0.101可靠地確定服務器的標准域名。 全局設置“ ServerName”指令以禁止顯示此消息wordpress_1 | AH00558:apache2:無法使用172.25.0.101可靠地確定服務器的標准域名。 全局設置“ ServerName”指令以禁止顯示

docker模型不是使用特定IP創建容器,而是僅公開和發布您需要從外部訪問的容器中的端口。 因此,您需要在docker-compose.yml中為服務添加以下內容:

ports:
  - 8080:80

這樣會將所有在8080上到達主機的流量定向到容器的端口80。您可以根據需要調整這些端口,甚至可以使它們相同。 然后,所有試圖到達您的wordpress服務器的外部流量都將轉到http://your.docker.host:8080 (對於本地測試,這將是http:// localhost:8080 )。

如果確實需要指定容器的IP地址,可以完成此操作,但是您需要先定義自己的網絡,然后在該網絡上運行容器(為它提供IP),然后需要更新路由您的路由器或網絡上的其他主機將流量發送到該IP的docker主機,您可能會發現默認iptables規則將不允許流量流入該容器。 因此,我不建議您沿着那條路走。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM