4.Docker-Compose
介绍Docker-Compose
运行一个镜像,需要添加大量的参数。
-
这个时候可以通过Docker-Compose编写这些参数。
-
Docker-Compose可以帮助我们批量的管理容器。
-
只需要通过一个docker-compose.yml文件去维护即可,大大降低了我们使用docker的成本。
Docker-Compose的使用配置
1.去GitHub官网搜索docker-compose,选择需要下载的Docker-Compose版本
https://github.com/docker/compose/releases/download/1.24.1/docker-compose-Linux-x86_64
2.下载好后的文件就是一个可执行文件,将下载好的文件,上传到Linux操作系统中。
3.方便后期操作做以下修改
# 挪动文件并改名,给docker执行权限
[root@docker ~]# mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
[root@docker ~]# chmod 777 /usr/local/bin/docker-compose
# 配置环境变量
[root@docker ~]# vi /etc/profile
export PATH=$PATH:/usr/local/bin
[root@docker bin]# source /etc/profile
4.测试一下 在任意目录下输入docker-compose
Docker-Compose应用
1.想要通过Docker-compose管理容器,只需要编写一个yml文件
-
yml文件以key: value方式指定配置信息
-
多个配置信息以换行+缩进的方式来区分
-
在docker-compose.yml文件中,不要使用制表符
Docker-Compose管理MySQL和Tomcat容器
mkdir /opt/docker_msyql-tomcat/
cd /opt/docker_mysql-tomcat/
vi docker-compose.yml
version: '3.1' # Docker-Compose是1.24.1 所以这里填3.1 要是和填写的和对应版本不同编写的内容也会不同
services: # 代表一个yml文件可以管理多个容器
mysql: # 服务的名称
restart: always # 代表只要Docker启动,那么这个容器就跟着一起启动
image: daocloud.io/library/mysql:5.7.4 # 指定镜像下载路径
container_name: mysql # 指定容器名称,docker ps 可以看到的容器名称
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: always
image: daocloud.io/library/tomcat:8.5.15-jre8
container_name: tomcat
ports:
- 8080:8080
environment:
TZ: Asia/Shanghai
volumes:
- /opt/docker_mysql-tomcat/tomcat_webapps:/usr/local/tomcat/webapps
- /opt/docker_mysql-tomcat/tomcat_logs:/usr/local/tomcat/logs
2.使用Docker-Compose命令管理容器
在使用docker-compose的命令时,默认会在当前目录下找docker-compose.yml文件
也就是说要是当前目录没有docker-compose.yml文件,docker-compose命令将会不生效
1.基于docker-compose.yml启动管理的容器
[root@docker ~]# docker-compose up -d
2.关闭并删除容器
[root@docker ~]# docker-compose down
3.开启|关闭|重启已经存在的由docker-compose维护的容器
[root@docker ~]# docker-compose start|stop|restart
4.查看由docker-compose管理的容器
[root@docker ~]# docker-compose ps
5.查看日志
[root@docker ~]# docker-compose logs -f
Docker-Compose配合Dockerfile使用
使用docker-compose.yml文件以及Dockerfile文件在生成自定义镜像的同时启动当前镜像,并且由docker-compose去管理容器
version: '3.1'
services:
ssm:
restart: always
build: # 构建自定义镜像
context: ../ # 指定Dockerfile文件所在路径
dockerfile: Dockerfile # 指定Dockerfile文件名称
image: ssm:1.0.1 # 这次的image并不是去中央仓库拉取镜像,而是上面的build构建出的自定义镜像
container_name: ssm
ports:
- 8081:8080
environment:
TZ: Asia/Shanghai
from daocloud.io/library/tomcat:8.5.15-jre8
copy ssm.war /usr/local/tomcat/webapps
1.文件配置好后,可以直接启动基于docker-compose.yml以及Dockerfile文件构建的自定义镜像
[root@docker ~]# docker-compose up -d
如果自定义镜像不存在,会帮助我们构建出自定义镜像,如果自定义镜像已经存在,会直接运行这个自定义镜像
如果想重新构建的话,需要使用以下方式
重新构建自定义镜像
docker-compose build
运行前,重新构建
docker-compose up -d --build