lvt*_*llo 11 docker docker-compose
我使用的是docker 1.11.2版本。我能够创建命名的docker卷:
docker volume create --name my-jenkins-volume
Run Code Online (Sandbox Code Playgroud)
比我能够通过以下-v选项将我的容器与named-volume连接:
docker run -d -u jenkins --name jenkins -p 50000:50000 -p 443:8443 -v my-jenkins-volume:/var/jenkins_home
Run Code Online (Sandbox Code Playgroud)
是否可以在docker-compose中创建此命名卷?
Gia*_*Arb 12
我尝试了这种解决方案,对我来说,
version: '3.1'
services:
alp:
image: alpine
volumes:
- my-jenkins-volume:/your/local/path
command: sleep 10000
volumes:
my-jenkins-volume:
external: false
Run Code Online (Sandbox Code Playgroud)
external如果您从外部来源(而不是直接从docker-compose规范)提供卷,则为true
参考文档 https://docs.docker.com/compose/compose-file/#volume-configuration-reference
使用最新的撰写版本 (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:
Run Code Online (Sandbox Code Playgroud)
如果您指定external: true必须使用您指定的命令在外部创建卷。
是的,这是可能的。其实我觉得还是在docker compose里面创建比较好。这是我的 docker-compose.yml 之一的示例:
version: '2'
services:
db:
image: mysql
restart: always
volumes:
- "wp-db:/var/lib/mysql:rw"
volumes:
wp-db: {}
Run Code Online (Sandbox Code Playgroud)
在这里,命名卷是“wp-db”然后,如果你想在另一个 docker-compose.yml 文件中使用你的卷,你可以使用“external”关键字:
volumes:
my-jenkins-volume:
external: true
Run Code Online (Sandbox Code Playgroud)
(注意:这是在顶级音量关键字中,而不是在服务部分)
在下面的示例中,我们可以看到Web服务使用长语法mydata使用命名卷 ( ) 。
数据库服务还使用名为dbdata(数据库服务卷下的第二个路径)的命名卷,但使用旧的字符串格式定义它来安装命名卷:
version: "3.8"
services:
web:
image: nginx:alpine
volumes: # Long/new syntax below this block
- type: volume
source: mydata
target: /data
volume:
nocopy: true
db:
image: postgres:latest
volumes:
- "dbdata:/var/lib/postgresql/data" # <--- Short/old syntax
volumes:
mydata:
dbdata:
Run Code Online (Sandbox Code Playgroud)
(*) 请注意,命名卷必须列在顶级卷键下。
(**) 在这里阅读更多内容。
| 归档时间: |
|
| 查看次数: |
10892 次 |
| 最近记录: |