Docker-Compose
Posted xue_yun_xiang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker-Compose相关的知识,希望对你有一定的参考价值。
一、概述
Docker-Compose 是一个容器编排工具。
比如开发一个应用:运行需要 tomcat ,mysql +代码----》转化镜像
tomcat + 代码 一个镜像
mysql 一个镜像
两个镜像对应的容器 都要启动,mysql 对应的镜像先启动,
以上过程是通过手动方式 完成一系列容器的启动,让我们项目可以运行
我们可以通过 Docker-Compose 一键 启动所有的容器,并管理容器的依赖关系
二、Docker-Compose 安装
1、 将软件linuxdocker-compose-Linux-x86_64上传至linux
2、重命名 修改权限
[root@mastera ~]# mv docker-compose-Linux-x86_64 docker-compose
[root@mastera ~]# ls
a1.txt hello-world.tar.gz test2 testzip
anaconda-ks.cfg jdk-8u211-linux-x64.tar.gz test3
docker-compose mysql80-community-release-el7-3.noarch.rpm testtar
dockerfile_test test1_backup testtar2
[root@mastera ~]# chmod 777 docker-compose
3、配置环境变量
[root@mastera ~]# mv docker-compose /usr/local/bin/
[root@mastera ~]# ls /usr/local/bin/
docker-compose
[root@mastera ~]# vim /etc/profile
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210527193608901.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3h1ZV95dW5feGlhbmc=,size_16,color_FFFFFF,t_70)
[root@mastera ~]# source /etc/profile # 让环境变量刷新 生效
4、docker-compose 命令
[root@mastera ~]# docker-compose up #在当前目录创建启动容器 需要当前目录有 docker-compose.yaml
[root@mastera ~]# docker-compose down #删除 容器 镜像 网络 数据卷 当前目录下docker-compose.yaml 中的容器
[root@mastera ~]# docker-compose stop #停止容器/服务 当前目录下docker-compose.yaml 中的容器
[root@mastera ~]# docker-compose start # 重新启动容器 当前目录下docker-compose.yaml 中的容器
[root@mastera ~]# docker-compose ps # 列出当前目录下docker-compose.yaml 中的容器
5、docker-compose.yaml 用来编排容器的依赖关系
[root@mastera ~]# mkdir java2102
[root@mastera ~]# cd java2102/
[root@mastera java2102]# ls
[root@mastera java2102]# mkdir docker-compose-test1
[root@mastera java2102]# cd docker-compose-test1/
[root@mastera docker-compose-test1]# ls
[root@mastera docker-compose-test1]# vim docker-compose.yaml
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: 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`
三、启动
1、保证端口 不冲突,没有一运行的容器占用 端口
[root@mastera docker-compose-test1]# docker rm -f $(docker ps -aq)
3a1c6d182708
6cf5e7879325
373edd742942
[root@mastera docker-compose-test1]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@mastera docker-compose-test1]# docker-compose up # 前台运行
[root@mastera docker-compose-test1]# docker-compose up -d # 后台运行
2、显示所有docker-compose.yaml 配置的容器
[root@mastera docker-compose-test1]# docker-compose ps
Name Command State Ports
------------------------------------------------------------------------------------------
mysql /entrypoint.sh mysqld --da ... Up 0.0.0.0:3306->3306/tcp,:::3306->3306/tcp
tomcat catalina.sh run Up 0.0.0.0:8080->8080/tcp,:::8080->8080/tcp
3、删除所有docker-compose.yaml 配置的容器
[root@mastera docker-compose-test1]# docker-compose down
Stopping mysql ... done
Stopping tomcat ... done
Removing mysql ... done
Removing tomcat ... done
Removing network docker-compose-test1_default
注意
docker 及docker-compose第一次 都尽量使用前台运行
因为他会打印,可以简单明了看到容器的运行状态,如果有错误可以及时发现
以上是关于Docker-Compose的主要内容,如果未能解决你的问题,请参考以下文章