• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

docker - 如何使用docker-compose.yml文件命名卷?

[复制链接]
菜鸟教程小白 发表于 2022-8-3 10:11:20 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我是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/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap