赞
踩
大家好,我是好学的小师弟,今天和大家分享下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文件,这样即可启动你想要启动的服务
由于学习时间尚短,可能有出错的地方,希望大家见谅 >-<!
新人创作不易,觉得不错的看官,点个赞吧,么么哒!!!
转载注明出处!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。