【Docker】- 02 Docker-Compose

news/2024/9/23 11:21:09/

Docker-Compose

  • Docker-Compose
  • 1 下载并安装Docker-Compose
    • 1.1 下载Docker-Compose
    • 1.2 设置权限
    • 1.3 配置环境变量
    • 1.4 测试
  • 2 Docker-Compose管理MySQL和Tomcat容器
  • 3 使用docker-compose命令管理容器
  • 4 docker-compose配合Dockerfile使用
    • 4.1 docker-compose文件
    • 4.2 Dockerfile文件
    • 4.3 运行

Docker-Compose


之前运行一个镜像,需要添加大量的参数,可以通过Docker-Compose编写这些参数。而且Docker-Compose可以帮助我们批量的管理容器。这些信息只需要通过一个docker-compose.yml文件去维护即可。

1 下载并安装Docker-Compose

1.1 下载Docker-Compose

github官网搜索docker-compose,下载1.24.1版本的Docker-Compose

下载路径:https://github.com/docker/compose/releases/download/1.24.1/docker-compose-Linux-x86_64

最近期的下载路径:https://github.com/docker/compose/releases/download/v2.18.1/docker-compose-linux-x86_64

1.2 设置权限

需要将DockerCompose文件的名称修改一下,给予DockerCompose文件一个可执行的权限

mv docker-compose-Linux-x86_64 docker-compose
chmod 777 docker-compose

1.3 配置环境变量

方便后期操作,配置一个环境变量

将docker-compose文件移动到了/usr/local/bin , 修改了/etc/profile文件,给/usr/local/bin配置到了PATH中

mv docker-compose /usr/local/binvi /etc/profile
# 添加内容: export PATH=$JAVA_HOME:/usr/local/bin:$PATHsource /etc/profile

1.4 测试

在任意目录下输入docker-compose

2 Docker-Compose管理MySQL和Tomcat容器

yml文件以key: value方式来指定配置信息

多个配置信息以换行+缩进的方式来区分

在docker-compose.yml文件中,不要使用制表符

version: '3.1'
services:mysql:           # 服务的名称restart: always   # 代表只要docker启动,那么这个容器就跟着一起启动image: daocloud.io/library/mysql:5.7.4  # 指定镜像路径container_name: mysql  # 指定容器名称ports:- 3306:3306   #  指定端口号的映射environment:MYSQL_ROOT_PASSWORD: root   # 指定MySQL的ROOT用户登录密码TZ: Asia/Shanghai        # 指定时区volumes:- /opt/docker_mysql_tomcat/mysql_data:/var/lib/mysql   # 映射数据卷tomcat:restart: alwaysimage: daocloud.io/library/tomcat:8.5.15-jre8container_name: tomcatports:- 8080:8080environment:TZ: Asia/Shanghaivolumes:- /opt/docker_mysql_tomcat/tomcat_webapps:/usr/local/tomcat/webapps- /opt/docker_mysql_tomcat/tomcat_logs:/usr/local/tomcat/logs

3 使用docker-compose命令管理容器

在使用docker-compose的命令时 ,默认会在当前目录下找docker-compose.yml文件

  1. 基于docker-compose.yml启动管理的容器
  2. 关闭并删除容器
  3. 开启|关闭|重启已经存在的由docker-compose维护的容器
  4. 查看由docker-compose管理的容器
  5. 查看日志
# 1. 基于docker-compose.yml启动管理的容器
docker-compose up -d# 2. 关闭并删除容器
docker-compose down# 3. 开启|关闭|重启已经存在的由docker-compose维护的容器
docker-compose start|stop|restart# 4. 查看由docker-compose管理的容器
docker-compose ps# 5. 查看日志
docker-compose logs -f

4 docker-compose配合Dockerfile使用

使用docker-compose.yml文件以及Dockerfile文件在生成自定义镜像的同时启动当前镜像,并且由docker-compose去管理容器

4.1 docker-compose文件

编写docker-compose.yml文件

# yml文件
version: '3.1'
services:ssm:restart: alwaysbuild:            # 构建自定义镜像context: ../      # 指定dockerfile文件的所在路径dockerfile: Dockerfile   # 指定Dockerfile文件名称image: ssm:1.0.1container_name: ssmports:- 8081:8080environment:TZ: Asia/Shanghai

4.2 Dockerfile文件

编写Dockerfile文件

from daocloud.io/library/tomcat:8.5.15-jre8
copy ssm.war /usr/local/tomcat/webapps

4.3 运行

测试效果

# 可以直接启动基于docker-compose.yml以及Dockerfile文件构建的自定义镜像
docker-compose up -d
# 如果自定义镜像不存在,会帮助我们构建出自定义镜像,如果自定义镜像已经存在,会直接运行这个自定义镜像
# 重新构建的话。
# 重新构建自定义镜像
docker-compose build
# 运行当前内容,并重新构建
docker-compose up -d --build

http://www.ppmy.cn/news/93953.html

相关文章

Goby 漏洞更新|锐捷网络 NBR路由器 webgl.data 信息泄露漏洞

漏洞名称:锐捷网络 NBR路由器 webgl.data 信息泄露漏洞 English Name:Ruijie NBR Router webgl.data information CVSS core: 7.5 影响资产数:204290 漏洞描述: 锐捷网络NBR700G路由器是锐捷网络股份有限公司的一款无线路由设…

(十七)ArcGIS 属性表生成GUID字段

ArcGIS 属性表生成GUID字段 目录 ArcGIS 属性表生成GUID字段 1.GUID概念2.GUID格式3. ArcGIS 属性表生成GUID字段3.1新建GUID字段3.2生成GUID字段 1.GUID概念 全局唯一标识符(GUID,Globally Unique Identifier)是一种由算法生成的二进制长度…

平衡二叉树的插入,删除以及平衡调整。

一,平衡二叉树插入失衡情况及解决方案 由于各种的插入导致的不平衡,每次调整都是最小不平衡子树。 LL:由于在结点A的 左孩子的左子树 插入结点导致失衡。 右单旋:①将A的 左孩子B 向右上旋转 代替A成为根节点       ②将A结…

myeclipse开发工具介绍

MyEclipse是一款基于Eclipse平台的综合开发环境(IDE),尤其擅长于JavaWeb开发和企业级应用开发。MyEclipse由美国Genuitec公司推出,致力于提高开发人员的效率和开发质量,是Java Web、嵌入式和移动应用程序开发的首选开发…

【计算机网络 - 第四章】网络层:数据平面

目录 一、网络层概述 1、主要作用 2、控制平面方法 3、网络层提供的两种服务 二、路由器工作原理 1、路由器总体结构 2、输入、输出端口处理 (1)输入端口 (2)输出端口 3、交换 (1)经内存交换 &…

Pycharm中配置不了conda解释器

我安装的是pytorch的CPU版本,在Pycharm中配置conda环境时,每次添加完都不显示,搜遍了很多方法都没用。最后成功解决,这里将一些方法进行总结,方便大家解决问题。 我的情况和解决 问题情况以及显示 1.在Pycharm的日志…

Java开发 - 你不知道的JVM优化详解

前言 代码上的优化达到一定程度,再想提高系统的性能就很难了,这时候,优秀的程序猿往往会从JVM入手来进行系统的优化。但话说回来,JVM方面的优化也是比较危险的,如果单单从测试服务器来优化JVM是没有太大的意义的&…

DataNode启动报错Failed to add storage directory [DISK]file:【已解决】

Failed to add storage directory [DISK]file hadoop启动后缺少DataNode进程报错out文件报错log文件解决 hadoop启动后缺少DataNode进程 jps查看hadoop进程缺少DataNode的进程 报错out文件 查看DataNode的out日志 DataNode启动报错 ulimit -a for user root core file size…