侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

 Docker Compose的简单使用

2023-11-03 星期五 / 0 评论 / 0 点赞 / 36 阅读 / 10309 字

Docker Compose的简单介绍 Docker compose是一个用于定义和运行多容器docker应用的编排方式,可以使用它来管理应用服务。使用一条简单的命令,你就可以创建和启动你配置中的

 Docker Compose的简单介绍

     Docker compose是一个用于定义和运行多容器docker应用的编排方式,可以使用它来管理应用服务。使用一条简单的命令,你就可以创建和启动你配置中的所有服务。compose的配置文件是docker-compose.yml,Docker-compose是Docker compose的运行工具,在Docker 1.13以前,Docker的编排都使用Docker-compose工具,而在Docker 1.13以后,将Docker-compose的功能集成到Docker stack中,直接可以通过Docker stack部署分布式应用。

Docker compose的文件格式如下:

version: '2'  //版本号services:  //下面包含两个服务,分别是web和redis  web:    build: .   //使用Dockerfile创建镜像,指定是Dockerfile文件所在目录    ports:    - "5000:5000" //映射端口    volumes:    - .:/code //将宿主机当前目录挂载到容器/code目录中    - logvolume01:/var/log  //将数据卷挂载到容器中    links:    - redis   redis:    image: redis  volumes:  logvolume01: {}

version是版本号

services是应用服务,下面包含两个服务,分别是web和redis

web服务下:

     build 使用Dockerfile创建镜像,Dockerfile文件目录为当前目录

     ports 端口映射,容器的5000端口映射宿主机的5000端口

     volumes 挂载,第一个是将当前目录挂载到容器的/code目录,第二个则是将数据卷logvolume01挂载到容器的/var/log目录

         links 链接

redis服务下:

          image 使用redis镜像

volumes是数据卷

          

2.Docker compose的安装

官方下载脚本(不推荐)

curl -L "https://github.com/docker/compose/releases/download/1.11.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Daocloud脚本

curl -L https://get.daocloud.io/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

下载完文件后对文件添加可执行权限

 chmod +x /usr/local/bin/docker-compose

检查compose是否安装成功

[root@localhost ~]# docker-compose --helpDefine and run multi-container applications with Docker.Usage:  docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]  docker-compose -h|--helpOptions:  -f, --file FILE             Specify an alternate compose file (default: docker-compose.yml)  -p, --project-name NAME     Specify an alternate project name (default: directory name)  --verbose                   Show more output  -v, --version               Print version and exit  -H, --host HOST             Daemon socket to connect to  --tls                       Use TLS; implied by --tlsverify  --tlscacert CA_PATH         Trust certs signed only by this CA  --tlscert CLIENT_CERT_PATH  Path to TLS certificate file  --tlskey TLS_KEY_PATH       Path to TLS key file  --tlsverify                 Use TLS and verify the remote  --skip-hostname-check       Don't check the daemon's hostname against the name specified                              in the client certificate (for example if your docker host                              is an IP address)  --project-directory PATH    Specify an alternate working directory                              (default: the path of the compose file)Commands:  build              Build or rebuild services  bundle             Generate a Docker bundle from the Compose file  config             Validate and view the compose file  create             Create services  down               Stop and remove containers, networks, images, and volumes  events             Receive real time events from containers  exec               Execute a command in a running container  help               Get help on a command  images             List images  kill               Kill containers  logs               View output from containers  pause              Pause services  port               Print the public port for a port binding  ps                 List containers  pull               Pull service images  push               Push service images  restart            Restart services  rm                 Remove stopped containers  run                Run a one-off command  scale              Set number of containers for a service  start              Start services  stop               Stop services  top                Display the running processes  unpause            Unpause services  up                 Create and start containers  version            Show the Docker-Compose version information

 

3.docker compose的简单使用

docker compose的命令就不进行解析了,需要了解的可以通过

docker-compose --help

或者查询具体命令用法

docker-compose up --help

就可以得到帮助

下面举一个简单的docker compose的小例子

version: '2'services:  elasticsearch:    image: elasticsearch    ports:      - "9200:9200"      - "9300:9300"    environment:      ES_JAVA_OPTS: "-Xmx256m -Xms256m"  kibana:    image: kibana    environment:      ELASTICSEARCH_URL: http://elasticsearch:9200/    ports:      - "5601:5601"    links:      - elasticsearch

docker-compose.yml文件有严格的格式校验,编写的时候尽量不要使用tab键,不要添加注释等

下面解释一下这个compose文件。这是一个单机ELK日志收集模块的编排工具,定义了EK服务模块,作为日志的存储和显示。

version: '2' #docker-compose的版本号目前有 v1,v2,v3版本,其中v3版本需要docker1.13(and higher)版本支持

services:    elasticsearch:       image: elasticsearch  #使用elasticsearch:latest镜像    ports:      - "9200:9200" #将elasticsearch服务的端口映射到宿主机上      - "9300:9300"    environment:      ES_JAVA_OPTS: "-Xmx256m -Xms256m" #设置elasticsearch服务的java虚拟机内存使用  kibana:    image: kibana #使用kibana:latest镜像    environment:      ELASTICSEARCH_URL: http://elasticsearch:9200/ #指定查询日志信息的elasticsearch的路径    ports:      - "5601:5601"    links:      - elasticsearch #连接elasticsearch,kibana容器可以使用docker内部dns将elasticsearch转为对应容器ip

 

切换目录到docker-compose.yml文件所在文件夹

启动服务

[lt_docker_user1@localhost log]$ docker-compose up -dWARNING: The Docker Engine you're using is running in swarm mode.Compose does not use swarm mode to deploy services to multiple nodes in a swarm. All containers will be scheduled on the current node.To deploy your application across the swarm, use `docker stack deploy`.Creating log_elasticsearch_1Creating log_kibana_1

停止服务

[lt_docker_user1@localhost log]$ docker-compose stopStopping log_kibana_1 ... doneStopping log_elasticsearch_1 ... done

删除服务

 

[lt_docker_user1@localhost log]$ docker-compose rmGoing to remove log_kibana_1, log_elasticsearch_1Are you sure? [yN] yRemoving log_kibana_1 ... doneRemoving log_elasticsearch_1 ... done 

其他的命令就不在介绍,自行探索https://docs.docker.com/compose/reference/overview/

 

docker-compose插件功能在docker 1.13版本中集成到docker stack命令中,支持分布式部署。

 

docker-compose文件的编写格式和参数可以参考官方文档:

    v2版本:https://docs.docker.com/compose/compose-file/compose-file-v2/

    v3版本:https://docs.docker.com/compose/compose-file/

广告 广告

评论区