我想为简单的开发环境创建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)我不了解顶级的“音量:”命令。有人可以根据我的例子向我解释吗?
答案 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
,这表示您的作品期望某个卷已经存在并且不会创建它,您甚至可以指定要用于该卷的插件。如果您使用相同的