【docker】docker-compose常用语法与编写实战
【摘要】 【docker】docker-compose常用语法与编写实战
今天和大家分享下docker-compose的一些常用语法和编写实战
docker-compose是一个二进制文件,我们通常都是通过github把它下载下来,然后给他执行的权限。
下载docker-compose,在github上下载,下载完后记得把名字改一下,最好改为docker-compose, 然后通过ssh工具上传到服务器上 /usr/local/bin目录下
然后赋予执行权限
Chmod +x /usr/local/bin/docker-compose
然后查看 是否安装成功
docker-compose --version
docker-compose是一个用来编排容器的方式,它可以编排单机环境下的容器。比如一台服务器中,你要起一个web容器服务,一个redis容器服务,那么你就可以在docker-compose文件中编写。
docker-compose 常用的语法
docker-compose ps 列出所有运行的容器
docker-compose logs 查看服务日志输出
docker-compose build 构建或者重新构建服务(这里只是构建,还没有启动)
docker-compose start|stop 启动|停止已存在的某个或多个容器
docker-compose rm 删除指定的某个容器
docker-compose -f docker-compose-alarm.yml down 停止并删除该yaml文件生成的镜像、容器、网络、数据卷等操作
docker-compose -f docker-compose-alarm.yml up -d 构建、启动容器(一般都是用这条命令,包含了构建和启动)
-f 后跟的是指定文件(docker-compose 命令默认使用的配置文件是当前目录中的 docker-compose.yml 文件,当然我们可以通过 -f 选项指定一个其它名称的配置文件) -d 是以后台的方式运行容器。不会在终端上打印运行日志
docker-compose.yml文件语法
因为我们一般是创建一个docker-compose.yml文件,在这个yml文件中,我们来编写命令行。yaml格式的文件,有点类似于json的键值对格式。
注意:冒号后面要空一格,yaml格式的文件主要是靠空格来划分作用域的。
#docker-compose的例子
version: "2"
services:
TestCompose:
build: /root/test-Dockerfile #在docker-compose中,build只能指向一个目录
image: "this-docker-compose-test:test-docker-compose"
container_name: docker-compose-TestContainer
restart: always
env_file: /opt/docker-compose-envTest/config/.env
command: /bin/bash -c "java -jar /opt/jar/TEST-alarm-center.jar"
ports:
- "8011:8080"
volumes:
- /data/test:/data/test
- ./jar/:/opt/jar/
depends_on:
- redis
redis:
image: redis
#version 填写的是compose的版本号
#services是服务的意思
#Testcompose是服务的名字,一个services中可以含有多个服务
#Build 是构建的意思,如果我们的镜像是dockerfile文件,那么我们就用build构建一个镜像,build 后面的参数,是指向dockerfile文件目录的参数
#Image 是镜像,如果没有build 那么image就是直接拉取的官方镜像;如果有build,那么image就是build后构建的镜像的名字
#Container_name 就是构建后的容器的名字
#restart: always 这个意思就是,当docker服务重启的时候,docker里面的容器也跟着自动重新启动
#如果没有restart: always 这条命令,那么重启docker服务的时候,里面的容器并不会自动启动
#env_file:存放环境变量的目录 文件名(一般都是env)
#上文的.env是隐藏文件 这里我们要注意,你存放在.env文件里的环境变量服务对象是container(容器)而不是我们的docker-compose.yml文件
#有其他文档说明:当你的.env文件就叫.env文件的时候,它设置的环境变量也对docker-compose.yml文件生效 (暂未实操)
#.env文件编写格式 例子如下,注意注释不要省略
#nacos注册地址
REGISTER_HOST=192.168.66.66:8848
#nacos用户名
REGISTER_USER=CN_tester
#command 容器启动后默认执行的命令,一般是启动容器里的服务
# /bin/bash -c 的意思表示命令后面的参数将会作为字符串读入作为执行的命令。(简单来说后面跟的就是执行语句,启动服务)
#Ports就是映射端口:容器端口
#Volumes 宿主机目录:容器目录
#Depends_on 依赖,比如我启动的这个TestCompose服务,就需要先启动redis这个服务;depends_on就是一个容器启动顺序的命令
docker-compose.yml文件通常是放在Dockerfile的同级目录或者子目录下的
写完yaml文件后,只需要输入命令行,即可启动服务
docker-compose -f docker-compose-alarm.yaml up -d
#指定生成服务的yaml文件,这样即可启动你想要启动的服务
2个博客id : 钧瑜 /好学的小师弟
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)