首页 > 解决方案 > 将 docker link 命令转换为 docker-compose.yml

问题描述

是否可以将以下命令转换为docker-compose.yml文件?

$ docker run --name venns-mongo -v /mnt/volume1/orthovenn/mongodata:/data/db -d -p 27017:27017 mongo:latest

$ docker run -d --name venns -p 6001:6001 --link venns-mongo -v /mnt/volume1/orthovenn/venn2data:/data/orthovenn2 -e MONGO_HOST=venns-mongo lufang0411/orthovenn2:latest

$ docker run --name venns-front -p 9999:80 --link venns -v /mnt/volume1/orthovenn/venn2data:/data/orthovenn2 -e API_HOST=venns -e API_PORT=6001 -d lufang0411/orthovenn2-front:latest

标签: dockerdocker-compose

解决方案


在这里,我有 2 个与您的命令相关的 docker-compose 版本:

# Exact convert
version: '3'

services:
  mongo:
    image: mongo:latest
    container_name: venns-mongo
    volumes:
      - /mnt/volume1/orthovenn/mongodata:/data/db
    ports: 
      - 27017:27017

  orthovenn2:
    image: lufang0411/orthovenn2:latest
    container_name: venns
    volumes:
      - /mnt/volume1/orthovenn/venn2data:/data/orthovenn2
    ports: 
      - 6001:6001
    environment:
      - MONGO_HOST=venns-mongo
  
  front:
    image: lufang0411/orthovenn2-front:latest
    container_name: venns-front
    volumes:
      - /mnt/volume1/orthovenn/venn2data:/data/orthovenn2
    ports: 
      - 9999:80
    environment:
      - API_HOST=venns
      - API_PORT=6001

# recommended
version: '3'

services:
  db:
    image: mongo:latest
    volumes:
      - /mnt/volume1/orthovenn/mongodata:/data/db
    ports: 
      - 27017:27017

  orthovenn2:
    image: lufang0411/orthovenn2:latest
    volumes:
      - /mnt/volume1/orthovenn/venn2data:/data/orthovenn2
    ports: 
      - 6001:6001
    environment:
      - MONGO_HOST=db
  
  front:
    image: lufang0411/orthovenn2-front:latest
    volumes:
      - /mnt/volume1/orthovenn/venn2data:/data/orthovenn2
    ports: 
      - 9999:80
    environment:
      - API_HOST=orthovenn2
      - API_PORT=6001

请注意,link不推荐使用 docker,默认情况下使用 docker-compose 所有容器都将放在 default网络中并且可以相互访问


推荐阅读