[英]How to name a volume using a docker-compose.yml file?
我是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 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中的鏈接處理方式不同?
只需在docker文檔中搜索托管安裝卷:
version: '2'
services:
web:
image: modx
environment:
- MYSQL_PORT_3306_TCP=3306
- MODX_DB_HOST=mysql:3306
volumes:
- /home/muzzstick/dev/modxdev/html:/var/www/html
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
將/var/www/html
更改為html文件將在容器內的目錄。 並在主機左側創建目錄,並為所有用戶授予讀取權限。
問候
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.