1、Docker Compose 单机多容器部署工具
2、通过yml文件定义多容器如何部署
3、Linux需要自己安装Docker Compose
linux安装docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
//github太慢,可用daocloud
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.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-composeyml示例:服务器安装mysql和wordpress
在服务器中创建docker-compose.yml文件,文件内容:
version: '3.3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {}
在docker-compose.yml所在目录下执行命令,执行完毕后可以docker ps ,mysql和wordpress个人博客容器已经创建好了
docker-compose up -d
mysql在初始化时,会从/docker-entrypoint-initdb.d目录下,读取.sh,.sql文件执行。可用于启动时初始化数据
mysql创建镜像,设置环境变量 -e MYSQL_ROOT_PASSWORD=root , 设置root密码
docker run -d -e MYSQL_ROOT_PASSWORD=root my/mysql:1.1
进入mysql容器内部:
mysql -uroot -proot,-u用户名,-p密码,进入mysql客户端,use database切换数据源
mysql客户端查看表结构:show tables;
db:是docker-compose的服务名,也是为所要创建的容器的命名,同时也是网络访问的主机名。
在应用程序链接数据库的配置,直接配置
url: jdbc:mysql://db:3306/bsbdj?useUnicode=true db即可连通数据库
docker-compose logs查看日志 docker-compose logs db(服务名) 查看单独服务日志
docker-compose down下线并移除
build: ./bsbdj-db/ 构建指定目录的镜像,(bsbdj-db文件夹中包含DockerFile)
restart:宕机自动重启
environment:环境设置,设置mysql root密码。相当于把初始化环境命令放到配置文件中
depends_on:app应用程序下,指定在启动时需要db服务的依赖。并且是互联互通的(网桥)
ports:设置宿主机与容器间的端口映射