Docker compose

♦️接上一篇Docker自定义镜像
在这里插入图片描述
在这里插入图片描述

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


1.下载docker-compose

♦️第1步去github官网上下载
github下载docker-compose有点慢,百度网盘:下载docker-compose-Linux-x86_64 1.24.1
以下步骤看看就行:
🔹搜索docker-compose
在这里插入图片描述
🔹选择most stars最多收藏,点击第一个
在这里插入图片描述
🔹选择发行版本
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

♦️2. 下载好以后拖拽到Xterm中/root目录下
在这里插入图片描述
♦️3. ls查看root目录
在这里插入图片描述
发现docker-compose-Linux-x86_64文件存在
把该文件移动到/usr/local目录下:

mv docker-compose-Linux-x86_64  /usr/local

移动成功后cd切换到/usr/local目录查看
再把docker-compose-Linux-x86_64重命名:

mv docker-compose-Linux-x86_64 docker-compose

重命名为docker-compose
♦️在/usr/local目录下ll查看重命名后的文件的权限
在这里插入图片描述
发现文件可读写rw,没有执行权限x
所以chomd命令修改文件权限
在这里插入图片描述
输入chmod 777 docker-compose
docker-compose文件权限修改为可读可写可执行
在这里插入图片描述
接着输入mv docker-compose bin
把docker-compose移动到当前/usr/local目录的bin目录下
在这里插入图片描述
cd bin/查看,移动成功
接下来输入vi 命令编辑配置文件/etc/profile
进入编辑模式翻到文件最后一行看到如下图:
在这里插入图片描述
在上图方框中的代码进行修改,把路径:
:/usr/local/bin加到PATH中
添加位置如下图,在:$PATH
在这里插入图片描述
按下esc键,输入:wq回车,退出并保存。

♦️输入以下命令重新加载配置文件
source /etc/profile
在这里插入图片描述
切换到任意路径都可以运行docker-compose了
cd~切换到根目录
直接输入docker-compose可以看到如下,就说明运行成功
在这里插入图片描述


2. 总结下载步骤

下载Docker-Compose
♦️1.去github官网搜索docker-compose,
下载1.24.1版本的Docker-Compose
地址:
https://github.com/docker/compose/releases/download/1.24.1/docker-compose-Linux-x86_64

♦️2.将下载好的文件,拖拽到Linux操作系统中

♦️ 3.需要将DockerCompose文件的名称修改一下,基于DockerCompose文件一个可执行的权限

mv docker-compose-Linux-x86_64 docker-compose

chmod 777 docker-compose

♦️ 4、方便后期操作,配置一个环境变量

🔹将docker-compose移动到/usr/local/bin

mv docker-compose /usr/local/bin 

🔹修改/etc/profile文件,把/usr/local/bin配置到了PATH中

vi/etc/profile
export PATH=SJAVA_HOME:/usr/local/bin:$PATH

🔹重新加载配置文件

source /etc/profile

♦️ 5.测试一下
在任意目录下输入docker-compose

3. docker-compose管理MySQL和tomcat容器

之前说过Docker-Compose帮我们批量的管理容器。只需要通过一个docker-compose.yml文件去维护即可
♦️现在来编写docker-compose.yml文件帮我们管理MySQL和tomcat容器

docker-compose.yml文件的编写格式,
🔹以key: value的方式来指定配置信息(“:”后面有一个空格)
🔹多个配置信息以换行+缩进的方式来区分
🔹编写时不能使用制表符tab键,不能识别

version是版本号,service用来指定服务有哪些
其他参数配置信息看后面注释

version: '3.1'
services:
  mysql:       #服务的名称
    restart: always     #代表只要docker启动,那么这个容器就跟着一起启动
    image: daocloud. io/library/mysq1:5.7.4 #指定镜像路,在daocloud上复制到
    container_name: mysql   #指定容器名
    ports:
       - 3306:3306    #指定端口号的映射,类似docker run命令的-p参数
    environment:
       MYSQL_ROOT_PASSWORD: root #指定MySQL的ROOT用户登录密码,类似docker run命令的-e参数
       TZ: Asia/Shanghai #指定时区东八区,TZ是TimeZone的缩写
    volumes:
      -/opt/docker_mysql_tomcat/mysql_data:/var/lib/mysql
#映射数据卷,类似于docker run命令的-v参数,挂载数据卷
  

上面的缩进有一定的规律:
versionservices不缩进
mysql缩进2个空格
image、volumes等缩进4个
image、volumes等的属性值缩进6个

一个service可以配置多个服务,上面只配置了mysql服务,接下来继续添加tomcat服务

version: '3.1'
services:
  mysql:       #服务的名称
    restart: always     #代表只要docker启动,那么这个容器就跟着一起启动
    image: daocloud. io/library/mysq1:5.7.4 #指定镜像路,在daocloud上复制到
    container_name: mysql   #指定容器名
    ports:
       - 3306:3306    #指定端口号的映射,类似docker run命令的-p参数
    environment:
       MYSQL_ROOT_PASSWORD: root #指定MySQL的ROOT用户登录密码,类似docker run命令的-e参数
       TZ: Asia/Shanghai #指定时区东八区,TZ是TimeZone的缩写
   volumes:
      -/opt/docker_mysql_tomcat/mysql_data:/var/lib/mysql
#映射数据卷,类似于docker run命令的-v参数,挂载数据卷
  tomcat:    #服务器名称
    restart: always
    image: daocloud.io/library/tomcat:8.5.15-jre8   #镜像
    container_name: tomcat   #指定容器名
    ports:
       - 8080:8080   #指定端口
    environment:
       TZ: Asia/Shanghai    #指定时区   
    volumes:   #映射数据卷,类似于docker run命令的-v参数,挂载数据卷
          -/opt/docker_mysql_tomcat/tomcat_webapps:/usr/local/tomcat/webapps  #webapps和容器映射
          -/opt/docker_mysql_tomcat/tomcat_logs:/usr/local/tomcat/logs  #日志l映射

♦️volumes的值是怎么知道的

volumes:
   - /opt/docker_mysql_tomcat/tomcat_webapps:/usr/local/tomcat/webapps

以上代码/opt/docker_mysql_tomcat/tomcat_webapps是数据卷的路径,如果文件不存在,docker会帮我们创建
:后面/usr/local/tomcat/webapps是tomcat镜像里面的环境变量的路径,我们是怎么知道的?
如下图:去DaoCloud上,点击详情

在这里插入图片描述
往下翻
在这里插入图片描述
可以看到,默认的环境变量路径为/usr/local/tomcat下

到此,就可以通过docker-compose.yml文件管理mysql容器和tomcat容器

♦️docker-compose.yml文件的书写格式了解以后,我们来正式编写

🔹cd命令切换到/opt目录下,
mkdir命令新建一个文件夹docker_mysql_tomcat

在这里插入图片描述
(注意上图中volumes单词写错了-_-||,写成了voulmes,下次注意)
🔹cd切换到新建的文件夹docker_mysql_tomcat
vi docker-compose.yml编辑文件
在这里插入图片描述
🔹把上面写过的docker-compose.yml文件的内容全部复制过来,如下:
在这里插入图片描述
输入:set nu就可以🈶行号
接着按esc键,输入:wq回车,保存并退出。

♦️docker-compose.yml文件写好以后就可以输入
docker-compose命令运行了

🔹先docker stop $(docker ps -qa)关闭所有容器,
docker rm $(docker ps -qa)删除所有容器
在这里插入图片描述
🔹docker ps查看所有运行的容器发现全没了
🔹运行docker-compose,输入以下命令:
docker-compose up -d
运行报错:


[root@localhost docker_mysql_tomcat]# docker-compose up -d
Pulling mysql (daocloud.io/library/mysq1:5.7.4)...
ERROR: The image for the service you're trying to recreate has been removed. If                                     you continue, volume data could be lost. Consider backing up your data before                                     continuing.

Continue with the new image? [yN]^CERROR: Aborting.

在这里插入图片描述
发现是镜像地址的问题重新去pull了2个没有pull过的版本
在这里插入图片描述
然后vi docker-compose.yml修改一下,按下i进入编辑模式,把复制的右键选择Paste粘贴再image位置,按下esc键,输入:wq保存并退出

再次输入:docker-compose up -d,回车,运行成功如下图
在这里插入图片描述
docker ps查看运行的容器
在这里插入图片描述
输入docker ps查看运行的容器,发现配置在docker-compose.yml文件的服务成功运行

♦️打开SQLyog
在这里插入图片描述
重新连接mysql,
主机名和ip地址是Xterm连接的ip地址
端口和密码依据如下图docker-compose.yml文件中的配置的
在这里插入图片描述
♦️导入导出数据库

♦️把项目打包为ssm.war,复制到挂载到tomcat容器的数据卷下,也就是docker-compose.yml文件里下图中的路径中
在这里插入图片描述
在这里插入图片描述

浏览器输入http://192.168.199.10:8080/ssm访问,注意输入http,不要输入https
在这里插入图片描述


♦️1.基于docker-compose.yml启动管理的容器

docker-compose up -d

♦️ 2.关闭并删除容器

docker-compose down

在这里插入图片描述
输入docker-compose down关闭容器
docker ps -a查看,没有运行的容器

♦️3.开启/关闭/重启已经存在的由
docker-compose维护的容器

docker-compose start/stop/restart

♦️4.查看由docker-compose管理的容器

docker-compose ps

♦️5.查看由docker-compose管理的容器的日志

docker-compose logs -f

在这里插入图片描述
上图中
输入命令docker-compose up -d基于docker-compose.yml启动管理的容器
输入命令docker-compose stop关闭已经存在的由
docker-compose维护的容器
在这里插入图片描述
上图中
输入命令docker-compose start开启已经存在的由
docker-compose维护的容器

输入命令docker-compose restart重启已经存在的由
docker-compose维护的容器

输入命令docker-compose ps查看由docker-compose管理的容器
输入命令docker-compose logs -f查看由docker-compose管理的容器的日志

查看日志我们通常去数据卷中映射的路径下查看
在这里插入图片描述

如下图
在docker_mysql_tomcat路径下ls查看
cd tomcat_log/切换到tomcat_log目录下
ls查看
cat命令查看日志文件catalina.2020-04-09.log的内容,并将其显示在屏幕上

在这里插入图片描述
cat命令(加上-n参数,把行号也显示到屏幕上,加上-A显示特殊符号,
例:cat -n file1cat -A file2
回车,运行结果如下图
在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

素心如月桠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值