dockercompose部署服务

author author     2022-10-01     244

关键词:

1 用docker compose部署服务

- 需求:假如现在我们手里有很多容器,每个容器对应每个服务,有nginx容器,redis容器,mysql容器等。现在我们需要批量化的去管理,批量启动,停止,重启等操作!当然你会说用shell,可是如何不用shell来完成需求呢,那就需要用到接下来介绍的docker compose了。

- docker compose可以方便我们快捷高效地管理容器的启动、停止、重启等操作,它类似于linux下的shell脚本,基于yaml语法,在该文件里我们可以描述应用的架构,比如用什么镜像、数据卷、网络模式、监听端口等信息。我们可以在一个compose文件中定义一个多容器的应用(比如jumpserver),然后通过该compose来启动这个应用。

- 安装compose

[[email protected] ~]#  curl -L https://github.com/docker/compose/releases/download/1.17.0-rc1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose //从官方下载一个最新的compose
[[email protected] ~]# chmod 755 /usr/local/bin/docker-compose //将权限设置为755
[[email protected] ~]# docker-compose version
docker-compose version 1.17.0-rc1, build a0f95af
docker-py version: 2.5.1
CPython version: 2.7.13
OpenSSL version: OpenSSL 1.0.1t  3 May 2016

Compose区分Version 1和Version 2(Compose 1.6.0+,Docker Engine 1.10.0+)。
Version 2支持更多的指令。Version 1没有声明版本默认是"version 1"。Version 1将来会被弃用。

定义一个docker compose 管理器

[[email protected] ~]# docker ps //查看容器的名称,后面会用到
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                  NAMES
f98ab40c32a6        centos              "bash"                   10 seconds ago       Up 4 seconds                               heuristic_torvalds
c06361830af1        centos7_1           "/bin/sh -c ‘/usr/..."   About a minute ago   Up About a minute   0.0.0.0:8080->80/tcp   root_app1_1
726da06d12c8        centos7_1           "tail -f /etc/passwd"    21 minutes ago       Up 20 minutes       80/tcp                 root_app2_1
1101ab2618a4        centos7_1           "/bin/sh -c ‘/usr/..."   18 hours ago         Up 18 hours         0.0.0.0:81->80/tcp     hopeful_pasteur
[[email protected] ~]# vim docker-compose.yml
version: "2"
services:
  app1:
    image: centos_nginx
    ports:
      - "8080:80"
    networks:
      - "net1"
    volumes:
      - /data/:/data
  app2:
    image: centos_with_nettool
    networks:
      - "net2"
    volumes:
      - /data/:/data1
    entrypoint: tail -f /etc/passwd
networks:
  net1:
    driver: bridge
  net2:
    driver: bridge
参数详解:
version: "2" //版本为2版本
services: //相关容器或者镜像操作
  app1: //app1对应的是容器1的信息,这里需要注意是要运行的容器的名称
    image: centos7_1 ///images的名字
    ports: //映射端口
      - "8080:80" //映射宿主机8080对应容器的80端口
    networks: //网络(默认是bridge模式)
      - "net1" //下面定义的net1(要是需要pipwork怎么办?官方不支持,就只能在写shell然后在 driver后面 定义none)
    volumes: //-v的参数指定
      - /data/:/data  //目录映射
  app2:
    image: centos
    networks:
      - "net2"
    volumes:
      - /data/:/data1
    entrypoint: tail -f /etc/passwd ///还是老问题BUG 为了不让执行后关闭,我们使用这条命令
networks: //这里就是如上net1定义的网络模式
  net1:
    driver: bridge
  net2:
    driver: bridge
[[email protected] ~]# docker-compose up -d 
Recreating root_app2_1 ... 
Recreating root_app2_1
Recreating root_app2_1 ... done
[[email protected] ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
9646c0a40ae1        centos              "tail -f /etc/passwd"    7 minutes ago       Up 7 minutes                               root_app2_1
f98ab40c32a6        centos              "bash"                   8 minutes ago       Up 7 minutes                               heuristic_torvalds
c06361830af1        centos7_1           "/bin/sh -c ‘/usr/..."   9 minutes ago       Up 9 minutes        0.0.0.0:8080->80/tcp   root_app1_1
1101ab2618a4        centos7_1           "/bin/sh -c ‘/usr/..."   18 hours ago        Up 18 hours         0.0.0.0:81->80/tcp     hopeful_pasteur
[[email protected] ~]# docker-compose --help //有不会的指令及时查看命令帮助

希望看过的童鞋多多指教,谢谢!技术分享图片技术分享图片

dockercompose安装部署jenkins

流水线可以让项目发布流程更加清晰,docker可以大大减少Jenkins配置。本篇讲解通过DockerCompose部署Jenkins服务。流水线可以让项目发布流程更加清晰,docker可以大大减少Jenkins配置。本篇讲解通过DockerCompose部署Jenkins服务。 查看详情

docker用dockercompose部署服务(代码片段)

用dockercompose部署服务dockercompose可以方便我们快捷高效地管理容器的启动、停止、重启等操作,它类似linux下的shell脚本,基于yaml语法,在该文件里我们可以描述应用的架构,比如用什么镜像、数据卷、网络模式、监听端口等信... 查看详情

dockercompose方式部署springboot前后端分离项目

服务编排方式部署以下文件具体目录 1、构建springboot后台服务dockerfile文件,vim/usr/local/docker/soc/DockerfileFROMjdk:8MAINTAINERsinvie.cnADDScgService.jar/root/ScgService.jarENTRYPOINT["nohup","java","-jar","/root/ScgServ 查看详情

dockercompose跨主机部署consul集群/单机(代码片段)

简单明了直接开干。原理百度下  #此次部署双客户端三服务端  一、确定服务器信息有无相关端口冲突。docker服务是否存在netstat-nltp|grep-E"8300|8301|8302|8500|8600"8300:集群内数据的读写和复制8301:单个数据中心gossip协... 查看详情

dockercompose部署springboot+mysql项目(代码片段)

DockerCompose部署Springboot+Mysql项目在上一篇文章SpringBoot(Maven)+Docker打包中,我们实现了将Springboot项目源代码一键打包部署为Docker服务。上文中,我们的Springboot项目如果要与数据库的连接,就必须连接公网IP来使用&... 查看详情

dockercompose

...排部署基于docker的应用。本身与docker/swarm配合度很高。DockerCompose是Docker编排服务的一部分,可以让用户在其它平台快速安装Docker,Swarm可以让Docker容器在集群中高效运转,而Compose可以让用户在集群中部署分布式应用。简单的说... 查看详情

docker私有仓库部署之compose搭建consul集群(代码片段)

文章目录一、DockerCompose简介1.1DockerCompose概述1.2DockerCompose容器编排1.3DockerCompose常用命令1.4DockerCompose配置常用字段二、Consul简介2.1consul概述2.2Consul容器服务更新与发现三、部署Compose3.1安装docker、设置镜像加速3.2compose部署四、consu... 查看详情

dockercompose部署(代码片段)

dockercompose部署————资源控制[root@localhost~]#dockernetworklsNETWORKIDNAMEDRIVERSCOPE4946cb00240cbridgebridgelocal7ad0dfddaa0fhosthostlocal906f0be0af7cnonenulllocal#自定义网络固定IPdockernetworkcreate--subnet=172 查看详情

dockercompose部署springboot+mysql项目(代码片段)

声明:本文CSDN作者原创投稿文章,未经许可禁止任何形式的转载,原文链接在上一篇文章SpringBoot(Maven)+Docker打包中,我们实现了将Springboot项目源代码一键打包部署为Docker服务。上文中,我们的Springboot项目... 查看详情

关于docker那点事儿——dockercompose简介(代码片段)

dockercompose简介前言一、dockercompose概念二、dockercompose安装三、dockercompose常用命令四、docker-compose.yml文件详解1、文件结构2、示例:docker-compose管理微服务前言  微服务架构的应用系统一般包含若干个微服务,每个微服务... 查看详情

使用dockercompose编排微服务(代码片段)

使用DockerCompose编排微服务经过前文讲解,可使用Dockerfile(或Maven)构建镜像,然后使用docker命令操作容器,例如dockerrun、dockerkiil等。然而,使用微服务架构的应用系统一般包含若干个微服务,每个微服务一般都... 查看详情

dockercompose(项目)

DockerCompose 项目compose项目简介    compose项目来源于之前的Fig项目,使用python代码编写。compose项目主要用于编排部署基于docker的应用。本身与docker/swarm配合度很高。DockerCompose 是Docker编排服务的一部分,可... 查看详情

dockercompose项目

http://hongge.blog.51cto.com/DockerCompose项目compose项目简介compose项目来源于之前的Fig项目,使用python代码编写。compose项目主要用于编排部署基于docker的应用。本身与docker/swarm配合度很高。DockerCompose是Docker编排服务的一部分,可以让用... 查看详情

docker_day04:dockerfiledocker私有仓库dockercompose介绍dockercompose部署一件部署路飞项目(代码片段)

...程docker私有仓库镜像传到官方仓库镜像分层私有仓库搭建dockercompose介绍dockercompose部署flask+redis项目新建flask项目app.py编写Dockerfile--->>>用于构建flask项目的镜像编写docker-compose的yaml文件docker-compose.ymldocker-compose启动dockercompose... 查看详情

dockercompose(代码片段)

1、什么是dockercomposeCompose是一个定义和管理多容器的工具,使用Python语言编写。使用Compose配置文件描述多个容器应用的架构,比如使用什么镜像、数据卷、网络、映射端口等;然后一条命令管理所有服务,比如启动、停止、重... 查看详情

centos7部署dockercompose(代码片段)

...======================将原先dockerswarm的文章拆分后,我决定将dockercompose的部署内容单独整理成文章,使得部署逻辑更清晰。 dockercompose是docker容器批量编排的工具,可以通过1个yml文件创建多个docker容器,当然compose工具依赖于docke... 查看详情

dockercompose一键部署lnmp平台(代码片段)

docker-compose.ymlversion:‘3‘services:nginx:hostname:nginxbuild:context:./nginxdockerfile:Dockerfileports:-80:80links:-php:php-cgivolumes:-./wwwroot:/usr/local/nginx/htmlphp:hostname:phpbuild:./phplin 查看详情

使用dockercompose部署nexus后提示:unabletocreatedirectory/nexus-data/instance

场景UbuntuServer上使用DockerCompose部署Nexus(图文教程):https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/101111611在上面部署好Nexus后,启动后日志提示:Unabletocreatedirectory/nexus-data/instance  注:博客:https:// 查看详情