加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-16 03:30:53 所属栏目:安全 来源:网络整理
导读:我是Docker的新手,我正在尝试找出如何设置创建的数据卷的名称.目前,该目录在/ var / libs / docker下自动命名为长哈希,远非用户友好. 我正在尝试为MODX设置开发环境,如下所示: https://github.com/modxcms/docker-modx 目前我的docker-compose.yml文件如下

我是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中,链接的处理方式是否有所不同?

最佳答案
要使用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),您可以定义要安装的目录.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读