参考:
docker官方文档:http://docs.docker.com
docker-compose
之前运行一个镜像,需要添加大量的参数。可以通过Docker-Compose编写这些参数。Docker-Compose可以帮助我们批量的管理容器。只需要通过一个docker-compose.yml文件去维护即可。
下载安装
- github官网:https://github.com/docker/compose/releases/
- 下载并上传linux
- DockerCompose文件的名称修改一下,基于DockerCompose文件一个可执行的权限
mv ./docker-compose-Linux-x86_64 ./docker-compose
mv ./docker-compose /usr/local/bin/
cd /usr/local/bin/
chmod 777 ./docker-compose
- 方便后期操作,配置一个环境变量
# 将docker-compose文件移动到了/usrlocal/bin,修改了letc/profile文件,给/usr/local/bin配置到了PATH中
vim /etc/profile
# 添加
export PATH=$PATH:/usr/local/bin:$JAVA_HOME/bin # $JAVA_HOME/bin 是java环境变量
# 回到用户目录查看 输出docker-compose信息
cd
docker-compose
管理容器
Docker-Compose管理MySQL和Tomcat容器。 通过编写docker-compose.yml文件对容器镜像管理
# file:docker-compose.yml
version : '3.8'
services:
mysq1: # 服务的名称
restart: always # 代表只要Docker启动,那么这个容器就跟着一起启动
image: daocloud.io/1ibrary/mysq1:5.7.4 # 指定镜像路径
container_name: mysql # 指定容器名称
ports:
- 3306:3306 # 指定端口号的映射
environment:
MYSQL_ROOT_PASSWORD: root # 指定MySQL的ROOT用户登录密码
TZ: Asia/shanghai # 指定时区
volumes :
- /home/docker_mysq1:/var/1ib/mysq1 # 映射数据卷
tomcat :
restart: always # 代表只要Docker启动,那么这个容器就跟着一起启动
image: daocloud.io/1ibrary/tomcat:8.5.15-jre8 # 指定镜像路径
container_name: tomcat # 指定容器名称
ports:
- 8080:8080
environment:
Tz: Asia/shanghai
volumes :
- /home/tomcat_webapps:/usr/1oca1/tomcat/webapps
- /opt/tomcat_logs:/usr/loca1/tomcat/logs
管理容器命令
查看日志# 基于docker-compose.yml启动管理的容器 会从远程拉取相应镜像并启动容器
docker-compose up -d
# 关闭并删除容器 删除容器,镜像还在,从新up会重新启动容器
docker-compose down
#开启关闭重启已经存在的由docker-compose维护的容器
docker-compose start|stop|restart
# 查看由docker-compose管理的容器
docker-compose ps
# 查看日志
docker-compose logs -f
结合Dockerfile使用
使用docker-compose.yml文件,以及Dockerfile文件在生成自定义镜像的同时启动当前镜像,并且由docker-compose去管理容器。
- yml文件
version: '3.1'
services:
web-demo:
restart: alwaysbuild: # 构建自定义镜像
context: ../ # 指定Dockerfi1e文件所在路径 image:直接指定镜像 dockerfile:通过dockerfile构建镜像
dockerfi1e: Dockerfi1e # 指定Dockerfile文件名称
image: demo: 1.0
container_name: demo
ports:
8081:8080
environment:
TZ: Asia/shanghai
- Dockerfile文件
from daocloud.io/1ibrary/tomcat:8.5.15-jre8
copy demo.war /usr/loca1/tomcat/webapps