2016-11-25 2 views

ответ

132

Согласно docker-compose reference,

Ports определяется как:

Разоблачи порты. Либо укажите оба порта (HOST: CONTAINER), либо просто порт контейнера (будет выбран случайный хост-порт).

  • порты, указанные в Докер-compose.yml будут распределены между различными службами, начатых Докер-композе.
  • Порты будут находиться на хост-машине на случайном порту или заданном порту.

Мои docker-compose.yml выглядит

mysql: 
    image: mysql:5.7 
    ports: 
    - "3306" 

Если я docker-compose up, это будет выглядеть следующим образом:

$ docker-compose ps                      10:27:28 
    Name      Command    State   Ports 
------------------------------------------------------------------------------------- 
    mysql_1  docker-entrypoint.sh mysqld  Up  0.0.0.0:32769->3306/tcp 

Expose определяется как:

Expose порты без их публикации на хост-машине - им будет доступ к связанным службам. Можно указать только внутренний порт.

Порты не подвергаются действию машин, обслуживаемых другими службами.

mysql: 
    image: mysql:5.7 
    expose: 
    - "3306" 

Если я docker-compose up, это будет выглядеть следующим образом:

Name     Command    State Ports 
--------------------------------------------------------------- 
mysql_1  docker-entrypoint.sh mysqld Up  3306/tcp 
+19

Вы задали вопрос и в ту же минуту, вы даете свой собственный ответ? .. – lvthillo

+55

@ lorenzvth7 получается, что я нашел ответ, добавляя свой вопрос, и Stackoverflow позволяет вам отвечать одновременно. Внизу вы видите [] Отвечаете на собственный вопрос - поделитесь своими знаниями, Q & A-style :-) – bibstha

+4

Путь к удару вашей репутации репутации Я думаю, – Ivan

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