加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

macos – 使用共享的MySQL容器

发布时间:2020-12-16 03:49:00 所属栏目:安全 来源:网络整理
导读:文艺青年最爱的;试图让WordPress docker-compose容器与另一个docker-compose容器对话. 在我的Mac上,我有一个WordPress我使用链接的MySQL服务器构建和配置的MySQL容器.在生产中我计划使用Google Cloud MySQL存储实例,因此计划从docker-compose文件中删除MySQL

文艺青年最爱的;试图让WordPress docker-compose容器与另一个docker-compose容器对话.

在我的Mac上,我有一个WordPress&我使用链接的MySQL服务器构建和配置的MySQL容器.在生产中我计划使用Google Cloud MySQL存储实例,因此计划从docker-compose文件中删除MySQL容器(取消链接),然后将可以在多个docker容器中使用的共享容器分开.

我遇到的问题是我无法将WordPress容器连接到单独的MySQL容器.是否有人能够阐明我将如何解决这个问题?

我尝试创建一个网络并尝试通过/ etc / hosts文件创建一个本地盒引用的固定IP(我的首选配置,因为我可以根据ENV更新文件)

WP:

version: '2'

services:
  wordpress:
    container_name: spmfrontend
    hostname: spmfrontend
    domainname: spmfrontend.local
    image: wordpress:latest
    restart: always
    ports:
      - 8080:80

    # creates an entry in /etc/hosts
    extra_hosts:
      - "ic-mysql.local:172.20.0.1"

    # Sets up the env,passwords etc
    environment:
      WORDPRESS_DB_HOST: ic-mysql.local:9306
      WORDPRESS_DB_USER: root
      WORDPRESS_DB_PASSWORD: root
      WORDPRESS_DB_NAME: wordpress
      WORDPRESS_TABLE_PREFIX: spm

    # sets the working directory
    working_dir: /var/www/html

    # creates a link to the volume local to the file
    volumes:
      - ./wp-content:/var/www/html/wp-content

# Any networks the container should be associated with
networks:
  default:
    external:
      name: ic-network

MySQL的:

version: '2'

services:
  mysql:
    container_name: ic-mysql
    hostname: ic-mysql
    domainname: ic-mysql.local
    restart: always
    image: mysql:5.7
    ports:
      - 9306:3306

    # Create a static IP for the container
    networks:
      ipv4_address: 172.20.0.1

    # Sets up the env,passwords etc
    environment:
      MYSQL_ROOT_PASSWORD: root # TODO: Change this
      MYSQL_USER: root
      MYSQL_PASS: root
      MYSQL_DATABASE: wordpress

    # saves /var/lib/mysql to persistant volume
    volumes:
      - perstvol:/var/lib/mysql
      - backups:/backups

# creates a volume to persist data
volumes:
  perstvol:
  backups:

# Any networks the container should be associated with
networks:
  default:
    external:
      name: ic-network
最佳答案
你可能想要做的是为两个容器创建一个共享的Docker网络,并将它们指向它.您可以使用docker network create< name>创建网络.我将使用sharednet作为示例,但您可以使用任何您喜欢的名称.

一旦网络到达,您就可以将两个容器指向它.当您使用docker-compose时,您可以在YAML文件的底部执行此操作.这将在文件的顶层,即一直到左边,如卷:.

networks:
  default:
    external:
      name: sharednet

要在普通容器(外部compose)上执行相同的操作,可以传递–network参数.

docker run --network sharednet [ ... ]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读