我在码头版1.11.2上。我能够创建命名的docker卷:
docker volume create --name my-jenkins-volume
我可以使用-v
选项将我的容器与命名卷连接:
docker run -d -u jenkins --name jenkins -p 50000:50000 -p 443:8443 -v my-jenkins-volume:/var/jenkins_home
是否可以在docker-compose中创建此命名卷?
我尝试了这个解决方案并且对我有用
version: '3.1'
services:
alp:
image: alpine
volumes:
- my-jenkins-volume:/your/local/path
command: sleep 10000
volumes:
my-jenkins-volume:
external: false
如果您从外部源提供音量,而不是直接从docker-compose规范提供音量,则为true
参考doc https://docs.docker.com/compose/compose-file/#volume-configuration-reference
是的,这是可能的。事实上,我认为最好在docker compose中创建它。这是我的docker-compose.yml之一的示例:
version: '2'
services:
db:
image: mysql
restart: always
volumes:
- "wp-db:/var/lib/mysql:rw"
volumes:
wp-db: {}
这里,命名的卷是“wp-db”然后,如果你想在另一个docker-compose.yml文件中使用你的卷,你可以使用“external”关键字:
volumes:
my-jenkins-volume:
external: true
(注意:这是在顶级卷关键字,而不是在服务部分)
使用最新的撰写版本(3),您可以自动创建卷。
用你的例子:
version: '3'
services:
jenkins:
image: jenkins/jenkins
container_name: 'jenkins'
volumes:
- jenkins_home:/var/jenkins_home
ports:
- '8080:8080'
- '50000:50000'
networks:
- 'ci'
environment:
TZ: 'Europe/Paris'
restart: unless-stopped
volumes:
jenkins_home:
如果指定external: true
,则必须使用指定的命令在外部创建卷。