首页 > 技术文章 > docker 容器互联

outsrkem 2019-12-22 21:06 原文

使用网络方式使容器互联

 

数据库使用两个别名 db mysql

docker network create -d bridge my-bridge-network   # 创建一个网络
docker run -itd --name mariadb --env MYSQL_ROOT_PASSWORD=example \
--network=my-bridge-network --network-alias=db --network-alias=mysql mariadb # 启动数据库

docker run -itd --name MyWordPress --network=my-bridge-network --network-alias=lap -p 80:80 wordpress # 启动应用

 

直接使用命令 --link

docker run --name db --env MYSQL_ROOT_PASSWORD=example -d mariadb    启动数据
docker run --name MyWordPress --link db:mysql -p 80:80 -d wordpress  启动 LAP

 

使用网络

version: '2'
services:
  web:
    image: http
    networks:
      - myappnet1
  worker:
    image: http
    networks:
      - myappnet2
  db:
    image: http
    networks:
      myappnet1:
        aliases:
          - database
      myappnet2:
        aliases:
          - mysql
networks:
  myappnet1:
  myappnet2:



 

使用links


version: '2'
services:
 web:
  image: http
  container_name: web
  depends_on:
   - db
  ports:
   - "9090:80"
  links:
   - db:mysql
   - db:databases
 db:
  image: mariadb
  container_name: db
  environment:
    MYSQL_ROOT_PASSWORD: somewordpress
    MYSQL_DATABASE: wordpress
    MYSQL_USER: wordpress
    MYSQL_PASSWORD: wordpress

 

 

version: '2'
services:
  web:
    image: lap
    container_name: web
    restart: always
    depends_on:
      - db
    ports:
      - "80:80"
    networks:
      - mynet
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /home/www:/var/www
  db:
    image: mariadb
    container_name: db
    restart: always
    networks:
      mynet:
        aliases:
          - mysql
          - db
          - database          
    environment:
      MYSQL_ROOT_PASSWORD: example
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /home/mysql/data:/var/lib/mysql
networks:
  mynet:

 

 

version: '3'

services:
   db:
     image: mysql:5.7
     container_name: db
     restart: always
     networks:
       mynet:
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     container_name: wordpress
     networks:
       mynet:
     restart: always
     ports:
       - "8000:80"
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress

networks:
  mynet:

 

 

推荐阅读