Docker是一个开发、打包和运行应应用的开放平台,让你的应用和你的基础设置隔离开来,从而加速应用发布。使用Docker,可以让你用管理基础设施一样的方式去管理应用。
Docker解决了什么
部署一套运行运行环境会涉及到多个服务。
- 负载均衡nginx
- 数据库MySQL、MongoDB等
- 应用python、Java等
- 搜索ElasticSearch
- 监控Promethus、Grafana等
部署的差异
每个服务部署和配置各不相同,比如不同的环境下安装部署MySQL。
# centos7 部署MySQL
rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
yum -y install mysql-community-server
systemctl start mysqld
systemctl enable mysqld
# Centos8
dnf -y install @mysql
#运行以下命令启动MySQL,并设置为开机自启动
systemctl enable --now mysqld
# ubuntu部署mysql
sudo apt update
sudo apt install mysql-server
sudo systemctl status mysql
如果使用Docker呢?创建一个docker-compose.yaml,使用命令docker-compose up -d
,无论在什么样的操作系统之下,只要安装docker都可以启动。
# docker-compose.yaml MySQL一主一从
version: "3"
services:
db1:
image: mysql:5.7
container_name: db1
ports:
- 3308:3306
volumes:
- /home/dev/docker/mysql/ms/db1:/var/lib/mysql
- /home/dev/docker/mysql/ms/db1.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf
- /home/dev/docker/timezone:/etc/timezone
- /etc/localtime:/etc/localtime
environment:
MYSQL_ROOT_PASSWORD: 123456
MYSQL_DATABASE: sharding
MYSQL_USER: test
MYSQL_PASSWORD: 123456
db2: