2017-01-09 1 views
4

Tl; Dr; Пытаясь заставить контейнер WordPress-док-контейнера поговорить с другим контейнером для хранения докеров.Использование общего контейнера MySQL

На моем Mac у меня есть WordPress & Контейнер MySQL, который я создал и настроил со связанным сервером MySQL. В производстве я планирую использовать экземпляр хранилища Google Cloud MySQL, поэтому планируем удалить контейнер MySQL из файла для компоновки докеров (отменив его), а затем разделить общий контейнер, который я могу использовать из нескольких контейнеров докеров.

Проблема, с которой я сталкиваюсь, заключается в том, что я не могу подключить контейнер WordPress к отдельному контейнеру MySQL. Кто-нибудь сможет пролить свет на то, как я могу это сделать?

Я безуспешно пытался создать сеть, а также попытались создать фиксированный 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 
+0

Вы можете поделиться с нами своим docker-compose.yaml? –

+0

@YaronIdan Обновлен для включения файла докеров для экземпляра WP – gazzwi86

+0

Это не файл докеров, это файл docker-compose.yaml. И почему он не включает контейнер mysql? –

ответ

2

то, что вы, вероятно, хотите сделать, это создать общую сеть Docker для двух контейнеров для использования, и р их обоих. Вы можете создать сеть, используя docker network create <name>. Я буду использовать sharednet в качестве примера ниже, но вы можете использовать любое имя, которое вам нравится.

Как только сеть там, вы можете указать на нее оба контейнера. Когда вы используете docker-compose, вы сделали бы это в нижней части своего файла YAML. Это будет идти на верхнем уровне файла, то есть на всем пути влево, например volumes:.

networks: 
    default: 
    external: 
     name: sharednet 

Чтобы сделать то же самое на обычном контейнере (снаружи) создания письма, вы можете передать --network аргумент.

docker run --network sharednet [ ... ] 
+0

не похоже на трюк. Я обновил файлы, перечисленные выше для справки, но эффективно WP все еще не может говорить с БД – gazzwi86

+0

@ gazzwi86. Вы создали сеть с помощью 'docker create network ic-network'? Он отображается в 'docker network ls'? –

+0

удалось заставить его работать, настроив дополнительный хост и передав его IP, как указано выше. Мне просто нужно убедиться, что в окне MySQL теперь сохраняется статический IP-адрес, но я не уверен, как это сделать с внешней сетью – gazzwi86

 Смежные вопросы

  • Нет связанных вопросов^_^