Docker:Docker-Compose快速入门
前言:之前运行一个镜像,需要添加大量的参数,可以通过Docker-Compose编写这些参数,Docker-Compose可以帮助我们批量的管理容器,只需要通过一个Docker-Compose.yml文件去维护即可。
一、下载安装Docker-Compose
1.在Github搜索docker-compose,并下载1.27.4版本的Docker-Compose
网址:https://github.com/docker/compose
2.将下载好的文件,复制到Linux系统中
3. 修改文件名字和权限,并配置环境变量
为了方便操作可改文件的名字以及更改文件为可执行文件,将docker-compose文件移动到bin目录,修改/etc/profile文件,为bin配置环变量:
在/etc/profile文件中添加下面的配置:
4. 测试
在任意目录下输入命令:docker-compose
二、Docker-Compose管理MySQL和Tomcat容器
1.docker-compose.yml文件的内容
version: '3.7'
services:
mysql: #服务名称
restart: always #代表只要docker启动,那么这个容器就跟着一起启动
image: daocloud.io/library/mysql:5.7.4 #指定镜像文件路径
container_name: mysql #指定容器名称
ports:
- 3306:3306 #指定端口号的映射
environment:
MYSQL_ROOT_PASSWORD: 23456789 #指定MySQL的ROOT用户登录密码
TZ: Asia/Shanghai #指定时区
volumes:
- /opt/docker_mysql_tomacat/mysql_data:/var/lib/mysql #映射数据卷
tomcat:
restart: always
image: daocloud.io/library/tomcat:9.0.37-jdk8-openjdk
container_name: tomcat
ports:
- 8080:8080
environment:
MYSQL_ROOT_PASSWORD: 23456789
TZ: Asia/Shanghai
volumes:
- /opt/docker_mysql_tomcat/tomcat_webapps:/usr/local/tomcat/webapps
yml文件中的version与Docker版本对应的关系:
https://docs.docker.com/compose/compose-file/compose-file-v3/
2.使用docker-compose命令管理容器
在使用docker-compose的命令时,默认会在当前目录下找docker-compose.yml文件
在docker-compose.yml中不要使用制表符,并且遵守.yml的格式
-
基于docke-compose.yml启动管理的容器
docker-compose up -d
-
关闭并删除容器
docker-compose down
-
开启|关闭|重启已经存在的有docker-compose维护的容器
docker-compose start|stop|restart
-
查看有docker-compose管理的容器
docker-compose ps
-
查看日志
docker-compose logs -f
3.测试
-
创建docker-compose.yml文件
cd /opt mkdir docker_mysql_tomcat cd docker_mysql_tomcat/ vi docker-compose.yml
-
运行docker-compose命令
三、docker-compose配置Dockerfile使用
使用docker-compose.yml文件以及Dockerfile文件在生成自定义镜像的同时启动当前镜像,并且由docker-compose去管理容器
1.编写Dockerfile文件
from daocloud.io/library/tomcat:8.5.15-jre8
copy ssm.war /usr/local/tomcat/webapps
2.编写docker-compose.yml文件
version: '3.7'
services:
ssm:
restart: always
build: #构建自定义镜像
context: ../ #指定Dockerfile文件的所在路径
dockerfile: Dockerfile #指定Dockerfile文件名称
image: ssm:1.0.2
container_name: ssm
ports:
- 8080:8080
environment:
TZ: Asia/Shanghai
3.目录结构
4.相关的命令
-
可以直接启动基于docker-compose.yml以及Dockerfile文件构建的自定义镜像
如果自定义镜像不存在,会帮助我们构建出自定义镜像,如果自定义镜像已经存在,则直接运行这个自定义镜像
docker-compose up -d
-
重新构建自定义镜像
docker-compose build
-
运行前,重新构建
docker-compose up -d --build