python + mysql-通过docker-compose创建

时间:2018-07-04 09:39:00

标签: docker docker-compose

我想为简单的开发环境创建python + mysql服务,并从Internet下载一些信息。

我不想每次都创建新的构建,因此我想将绑定安装用于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)如何使用bash命令启动python?我想进行交互/进入python容器并制作一些东西。有可能不创建dockerfile吗?

3)绑定安装是否做得好?

4)为什么在python容器中我看不到端口80:80? python容器会通过“请求”模块建立互联网连接吗?

5)我不了解顶级的“音量:”命令。有人可以根据我的例子向我解释吗?

1 个答案:

答案 0 :(得分:1)

  

1)如何使用mysql-db1,而不创建新的?

除非您使用docker-compose down -v或其他命令将其删除,否则它将仅创建一次。因此,如果它不存在,则会创建

  

2)如何使用bash命令启动python?我想进行交互/进入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)我不了解顶级的“音量:”命令。有人可以根据我的例子向我解释吗?

用于指定您的撰写文件使用的卷。像mysql-db1一样,您可以控制几乎相同的参数。您可以说external: true,这表示您的作品期望某个卷已经存在并且不会创建它,您甚至可以指定要用于该卷的插件。如果您使用相同的