python + mysql - создание через docker-compose - PullRequest
0 голосов
/ 04 июля 2018

Я хочу создать сервис python + mysql для простой среды разработки и загрузить некоторую информацию из Интернета.

Я не хочу каждый раз создавать новую сборку, поэтому я хочу использовать bind mount для исходного кода на python.

Мой каталог: 'python_mysql'.

Я создал там: docker-compose.yml

    version: '3.6'

    services: 
      python:
        image: python:latest
        ports:
         - '80:80'
        volumes:
          - type: bind
            source: .
            target: /scripts
      mysql:
        image: mysql/mysql-server:latest
        volumes:
          - type: volume
            source: mysql-db1
            target: /var/lib/mysql


    volumes: 
      mysql-db1:

Я также назвал том - файл базы данных: mysql-db1 - я хочу использовать его.

    $ docker volume ls 
    DRIVER              VOLUME NAME
    local               mysql-db1

После того, как:

    $ docker-compose up -d
    Creating network "python_mysql_default" with the default driver
    Creating python_mysql_mysql_1  ... done
    Creating python_mysql_python_1 ... done

есть:

    $ docker container ls -a

https://gyazo.com/b355c686db87ef0bfabbffad0ee19b37

    $ docker volume ls 
    DRIVER              VOLUME NAME
    local               mysql-db1
    local               python_mysql_mysql-db1

1) Как использовать mysql-db1, а не создавать новый?

2) Как запустить python с помощью команды bash? Я хочу взаимодействовать / войти в контейнер Python и сделать что-то. Это возможно без создания dockerfile?

3) Хорошо ли выполнено связывание?

4) Почему в контейнере python я не вижу портов 80:80? Будет ли контейнер Python подключен к Интернету через модуль запроса?

5) Я не понимаю команду «volume:» верхнего уровня. Может ли кто-нибудь объяснить мне на основе моего примера?

1 Ответ

0 голосов
/ 04 июля 2018

1) Как использовать mysql-db1, а не создавать новый?

Он будет создан только один раз, пока вы не удалите его с помощью docker-compose down -v или какой-либо другой команды. Поэтому, если он не существует, он создается

2) Как запустить python с помощью команды bash? Я хочу взаимодействовать / войти в контейнер Python и сделать что-то. Можно без создания dockerfile?

Вам нужно запустить команду, которая не заканчивается без ввода пользователя. Команда по умолчанию python выйдет без нее. Поэтому вам, вероятно, нужна команда типа

command: tail -f /dev/null

А потом используйте команду ниже для запуска python или bash

docker-compose exec python python

или

docker-compose exec bash

3) Хорошо ли выполнено связывание?

Не уверен, что это значит, но выглядит хорошо, если работает

4) Почему в контейнере python я не вижу портов 80:80? Будет ли контейнер Python подключен к Интернету через модуль запроса?

Ваш контейнер вышел, поэтому 80:80 не отображается

5) Я не понимаю команду «volume:» верхнего уровня. Может ли кто-нибудь объяснить мне на основе моего примера?

Указывает тома, которые использует ваш файл композиции. Как и mysql-db1, вы можете управлять параметрами примерно одинаково. Вы можете сказать external: true, что означает, что ваша композиция ожидает, что объем уже присутствует, и не будет создавать его, и вы даже можете указать, какой плагин использовать для объема. Если вы используете тот же

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...