Docker Compose单机容器编排工具

Docker Compose单机容器编排工具_第1张图片
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 

Docker Compose单机容器编排工具_第2张图片
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;  

Docker Compose单机容器编排工具_第3张图片

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:设置宿主机与容器间的端口映射

你可能感兴趣的:(Docker)