我是Docker的新手,我试图找出如何设置创建的数据卷的名称。当前,该目录自动在/var/libs/docker下被命名为长哈希,与用户友好程度相去甚远。
我正在尝试为MODX设置开发环境,如下所示: https://github.com/modxcms/docker-modx
目前,我的docker-compose.yml文件如下:
web:
image: modx
links:
- db:mysql
ports:
- 80:80
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: example
ports:
- 3306:3306
command: mysqld --sql-mode=NO_ENGINE_SUBSTITUTION
myadmin:
image: phpmyadmin/phpmyadmin
links:
- db:db
ports:
- 8080:8080
这可以完美地工作,但是我不确定如何命名将直接用IDE编辑的数据量。
(作为一个附带的问题,是否必须在/var/libs/docker下创建它?或者是否可以将其设置为我的主文件夹中的目录?)
更新: 感谢@juliano的帮助,我已将docker-compose.yml文件更新为:
version: '2'
services:
web:
image: modx
volumes:
- html:/home/muzzstick/dev/modxdev
links:
- db:mysql
ports:
- 80:80
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: example
ports:
- 3306:3306
command: mysqld --sql-mode=NO_ENGINE_SUBSTITUTION
myadmin:
image: phpmyadmin/phpmyadmin
links:
- db:db
ports:
- 8080:8080
volumes:
html:
external: false
不幸的是,这似乎阻止了Web容器的运行。 db和myadmin容器显示它们运行正常。 没有任何错误...如果我键入docker start docker_web_1 ,它似乎可以启动,但是docker ps -a 显示它一启动就退出了。
更新2
正在运行docker-compose up -d 似乎可以正常运行。但是随后如您在下面看到的,Web容器在创建后立即退出。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a1dd6d8ac94e modx "/entrypoint.sh apach" 10 seconds ago Exited (1) 5 seconds ago docker_web_1
ee812ae858dc phpmyadmin/phpmyadmin "/run.sh phpmyadmin" 10 seconds ago Up 5 seconds 80/tcp, 0.0.0.0:8080->8080/tcp docker_myadmin_1
db496134e0cf mysql "docker-entrypoint.sh" 11 seconds ago Up 10 seconds 0.0.0.0:3306->3306/tcp docker_db_1
更新3 单击确定,此容器的错误日志显示:
error: missing MODX_DB_HOST and MYSQL_PORT_3306_TCP environment variables
Did you forget to --link some_mysql_container:mysql or set an external db
with -e MODX_DB_HOST=hostname:port?
该错误似乎是由https://github.com/modxcms/docker-modx/blob/master/apache/docker-entrypoint.sh#L15-L20引起的
是否可能像docker-compose版本2中对链接的处理方式有所不同?
Best Answer-推荐答案
要使用version 2 of compose files创建命名数据卷,您将有一个单独的区域:
version: '2'
services:
db:
image: postgres
volumes:
- amazingvolume:/var/lib/postgresql/data
volumes:
amazingvolume:
external: true
因此,您可以定义卷名称(amazingvolume),如果它是external or not,则在您的服务下(在此示例中为db),您可以定义要挂载的目录。
关于docker - 如何使用docker-compose.yml文件命名卷?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/41303760/
|