一、Docker-Compose作用
之前运行一个镜像,需要添加大量的参数,可以通过Docker-Compose编写这些参数,Docker-Compose可以帮助我们批量的管理容器,只需要通过一个docker-compose.yml文件去维护。
1、下载docker-compose
地址:https://github.com/docker/compose/releases/download/1.24.1/docker-compose-Linux-x86_64
2、上传至/usr/local,并修改名字,赋予可执行权限
mv docker-compose-Linux-x86_64 docker-compose
chmod 777 docker-compose
3、配置环境变量
安装jdk
yum search java | grep -i --color jdk 查看JDK软件包列表 yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel 选择版本安装 yum install -y java-1.8.0-openjdk* 或者如下命令,安装jdk1.8.0的所有文件
java -version 查看JDK
是否安装成功
ls /usr/lib/jvmJDK
默认安装路径/usr/lib/jvm
在/etc/profile
文件添加如下命令
# set java environment
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME CLASSPATH PATH
保存关闭profile
文件,执行如下命令生效
source /etc/profile
使用如下命令,查看JDK
变量
echo $JAVA_HOME
echo $PATH
echo $CLASSPATH
docker-compose配置环境变量
把docker-compose移动至/usr/local/bin/
vim /etc/profile 在PATH后面添加/usr/local/bin
source /etc/profile 使配置文件生效
4、验证,在任意目录下执行此命令,得到此输出,说明配置成功。
二、Docker-compose管理Mysql和apache容器
yml文件以key:value方式来指定配置信息,多个配置信息以换行+缩进的方式来区分,在docker-compose.yml文件中,不要使用制表符就是tab键,规则用两个空格缩进
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: 123456 #指定MySQL账号root的密码 TZ: Asia/shanghai #指定时区 volumes: - /opt/docker_mysql_tomcat/mysql:/var/lib/mysql #指定映射数据卷 httpd: restart: always image: php:7.2-apache container_name: apache ports: - 80:80 environment: TZ: Asia/shanghai volumes: - /opt/docker_mysql_tomcat/www:/var/www/html - /opt/docker_mysql_tomcat/logs:/var/log/apache2
操作命令:在docker_mysql_tomcat目录下执行
docker-compose up -d 基于docker-compose.yml启动管理容器 docker-compose down 关闭并删除容器 docker-compose start|stop|restart 开启|关闭|重启已经存在的由docker-compose维护的容器 docker-compose ps 查看由docker-compose管理的容器 docker-compose logs -f 查看日志
三、docker-compose配置Dockerfile使用
使用docker-compose.yml文件以及Dockerfile文件在生成自定义镜像的同时启动当前镜像,并且由docker-compose去管理器
version: '3.1' services: ssm: restart: always build: context: ../ dockerfile: Dockerfile image: ssm:1.0.1 container_name: ssm ports: - 80:80 environment: TZ: Asia/Shanghai
创建Dcokerfile
from php:7.2-apache copy wordpress /var/www/html
目录结构
依赖docker-compose.yml启动容器
docker-compose up -d
如果自定义镜像不存在,会帮助我们构建出自定义镜像,如果自定义镜像已经存在,会直接运行这个自定义镜像
重新构建自定义镜像
docker-compose build
运行前,重新构建
docker-compose up -d --build