当前位置:   article > 正文

【docker】docker学习(4)——docker-compose常用语法与编写实战_dockers compose 语法版本

dockers 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格式的文件主要是靠空格来划分作用域的。

  1. #docker-compose的例子
  2. version: "2"
  3. services:
  4. TestCompose:
  5. build: /root/test-Dockerfile #在docker-compose中,build只能指向一个目录
  6. image: "this-docker-compose-test:test-docker-compose"
  7. container_name: docker-compose-TestContainer
  8. restart: always
  9. env_file: /opt/docker-compose-envTest/config/.env
  10. command: /bin/bash -c "java -jar /opt/jar/TEST-alarm-center.jar"
  11. ports:
  12. - "8011:8080"
  13. volumes:
  14. - /data/test:/data/test
  15. - ./jar/:/opt/jar/
  16. depends_on:
  17. - redis
  18. redis:
  19. image: redis
  20. #version 填写的是compose的版本号
  21. #services是服务的意思
  22. #Testcompose是服务的名字,一个services中可以含有多个服务
  23. #Build 是构建的意思,如果我们的镜像是dockerfile文件,那么我们就用build构建一个镜像,build 后面的参数,是指向dockerfile文件目录的参数
  24. #Image 是镜像,如果没有build 那么image就是直接拉取的官方镜像;如果有build,那么image就是build后构建的镜像的名字
  25. #Container_name 就是构建后的容器的名字
  26. #restart: always 这个意思就是,当docker服务重启的时候,docker里面的容器也跟着自动重新启动
  27. #如果没有restart: always 这条命令,那么重启docker服务的时候,里面的容器并不会自动启动
  28. #env_file:存放环境变量的目录 文件名(一般都是env)
  29. #上文的.env是隐藏文件 这里我们要注意,你存放在.env文件里的环境变量服务对象是container(容器)而不是我们的docker-compose.yml文件
  30. #有其他文档说明:当你的.env文件就叫.env文件的时候,它设置的环境变量也对docker-compose.yml文件生效 (暂未实操)
  31. #.env文件编写格式 例子如下,注意注释不要省略
  32. #nacos注册地址
  33. REGISTER_HOST=192.168.66.66:8848
  34. #nacos用户名
  35. REGISTER_USER=CN_tester
  36. #command 容器启动后默认执行的命令,一般是启动容器里的服务
  37. # /bin/bash -c 的意思表示命令后面的参数将会作为字符串读入作为执行的命令。(简单来说后面跟的就是执行语句,启动服务)
  38. #Ports就是映射端口:容器端口
  39. #Volumes 宿主机目录:容器目录
  40. #Depends_on 依赖,比如我启动的这个TestCompose服务,就需要先启动redis这个服务;depends_on就是一个容器启动顺序的命令

docker-compose.yml文件通常是放在Dockerfile的同级目录或者子目录下的

 写完yaml文件后,只需要输入命令行,即可启动服务

  1. docker-compose -f docker-compose-alarm.yaml up -d
  2. #指定生成服务的yaml文件,这样即可启动你想要启动的服务

由于学习时间尚短,可能有出错的地方,希望大家见谅  >-<!

新人创作不易,觉得不错的看官,点个赞吧,么么哒!!!

转载注明出处!

                                                                 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/74252
推荐阅读
相关标签
  

闽ICP备14008679号