首页 > 科技 > 如何使用docker compose创建运行MySQL 实例

如何使用docker compose创建运行MySQL 实例

前言

使用Docker compose,我们可以获得Docker的所有好处,甚至更多(最起码单机多实例,我们可以使用同一个端口,这样便于我们管理实例)。Docker通过创建一个虚拟环境(或容器)来运行代码。Docker Compose添加的是多个容器的编排和组织。虽然本教程只会为MySQL实例创建一个容器,但是当您的项目开始增长时,Docker Compose也可以同时运行您所有的各种服务。

我们这次使用ubuntu来做个实验 。

安装docker

sudo apt-get update
安装依赖包
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88

如下输出:

pub 4096R/0EBFCD88 2017-02-22Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88uid Docker Release (CE deb) sub 4096R/F273FCD8 2017-02-22

安装

sudo apt-get update && sudo apt-get install docker-ce

下载docker compose

sudo curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && sudo chmod +x /usr/local/bin/docker-compose

查看版本

docker-compose version 1.22.0, build 1719ceb

确认完成后,我们创建一个叫做docker-compose.yml的文件。然后编写如下内容:

version: '3.3'services: 
db:
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: 'db'
# So you don't have to use root, but you can if you like
MYSQL_USER: 'user'
# You can use whatever password you like
MYSQL_PASSWORD: 'password'
# Password for root access
MYSQL_ROOT_PASSWORD: 'password'
ports:
# : < MySQL Port running inside container>
- '3306:3306' expose:
# Opens port 3306 on the container
- '3306' # Where our data will be persisted
volumes:
- my-db:/var/lib/mysql
# Names our volume
volumes:
my-db:

保存文件,我们在compose.yml相同目录下,运行docker-compose up。可能时间比较慢,因为需要pull容器。完成后,我们可以看到端口3306启动了。

OK,一个mysql实例就启动了。如果我们想定义其他的值,只需要修改docker-compose.yml就可以了。

我们也可以使用几行配置来在docker中运行postgresql

下面是最简单的配置文件

version: '3.3'services: 
db:
image: postgres
restart: always
environment:
POSTGRES_PASSWORD: password

我们可以看到docker compose 提供了一个灵活的和可配置的数据库运行环境。

清理

清理容器很简单,只需要运行如下命令

docker-compose down
docker system prune -a
docker volume prune

使用Docker composition,我们可以在安全、隔离的环境中运行一个容器化数据库,同时仍然能够立即更改数据库的类型。除此之外,在大型项目中,我们可以充分利用Docker一次组合和编排所有不同的服务。正如您所看到的,我们只需要复制/粘贴一个YAML文件并运行docker- up,以便拥有一个完全可操作的开发数据库。

当然,简单的运行一个mysql服务是容易的。但是,如果要运行到生产环境还需要大量的有针对的测试。我在项目中就遇到过mysql 总是omm的情况。但是在物理机环境就没有,然后我调优了大量的参数,才解决了这个问题。

本文来自投稿,不代表本人立场,如若转载,请注明出处:http://www.souzhinan.com/kj/208246.html