docker用起来很方便,但是容器不易管理,在容器启动后,没有记录很可能忘记最初的启动命令,同时对于由多个项目组成的系统,一个一个部署效率很低,最好还是需要有一个可记录的声明式的配置文件记录部署配置的详细信息,Docker-Compose便可以很好的解决这个问题。
Docker-compose安装
docker-compose是一个docker容器编排的工具,使用它可以实现一键部署
https://docs.docker.com/compose/install/
# 下载docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 授权
sudo chmod +x /usr/local/bin/docker-compose
# 查看安装成功
docker-compose --version
Docker操作
# 构建镜像,当前文件夹下有dockerfile
docker build -t 镜像名称:版本号 .
# 导出镜像
docker save 镜像名称:版本号 > 镜像文件名.tar
# 导入镜像
docker load < 镜像名称.tar
Compose 配置案例
配置一个mysql、一个java、一个node
docker-compose有2版本和3版本,建议使用3版本
version: "3"
services:
mysql:
image: mysql/mysql-server
container_name: mysql
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_ROOT_PASSWORD: 123456
volumes:
- ./data:/var/lib/mysql
- ./conf/my.cnf:/etc/my.cnf
ports:
- "3306:3306"
java-api:
image: java-api:latest
container_name: java-api
ports:
- "8663:8663"
depends_on:
- mysql
restart: always
volumes:
- ./conf/application.properties:/usr/local/conf/application.properties
nodejs-deploy:
container_name: nodejs-deploy
image: nodejs-deploy:latest
ports:
- "9100:9100"
depends_on:
- java-api
restart: always
Compose 配置说明
配置镜像
services:
image: mysql/mysql-server
配置容器名称
services:
container_name: mysql
配置启动命令
services:
command: --default-authentication-plugin=mysql_native_password
配置重启策略
services:
restart: always
配置环境变量
services:
environment:
MYSQL_ROOT_PASSWORD: 123456
配置外置存储
前面的是本地地址,后面的是外部地址
services:
volumes:
- ./data:/var/lib/mysql
- ./conf/my.cnf:/etc/my.cnf
配置端口
前面是宿主机端口,后面是容器端口
services:
ports:
- "3306:3306"
启动停止
# 启动
docker-compose -f deploy.yaml up -d
# 停止并删除容器
docker-compose -f deploy.yaml rm -s
版权声明:本文为weiwoyonzhe原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。