序言
使用Dockercompose,我们可以获得Docker的所有用处docker compose 教程,甚至更多(最至少单机多实例,我们可以使用同一个端口,这样以便我们管理实例)。Docker通过创建一个虚拟环境(或容器)来运行代码。DockerCompose添加的是多个容器的编排和组织。其实本教程只会为MySQL实例创建一个容器,并且当您的项目开始下降时,DockerCompose也可以同时运行您所有的各类服务。
我们此次使用ubuntu来做个实验。
安装docker
sudo apt-get update 安装依赖包 sudo apt-get install apt-transport-https ca-certificates curl software-properties-commoncurl -fsSL | sudo apt-key add - sudo apt-key fingerprint 0EBFCD88
如下输出:
pub4096R/0EBFCD882017-02-22Keyfingerprint=9DC858229FC7DD38854AE2D88D81803C0EBFCD88uidDockerRelease(CEdeb)sub4096R/F273FCD82017-02-22
安装
sudo apt-get update && sudo apt-get install docker-ce
下载dockercompose
sudo curl -L " -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: # : - '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相同目录下linux修改文件名,运行docker-composeup。可能时间比较慢,由于须要pull容器。完成后,我们可以看见端口3306启动了。
OK,一个mysql实例就启动了。假如我们想定义其他的值,只须要更改docker-compose.yml就可以了。
我们也可以使用几行配置来在docker中运行postgresql
下边是最简单的配置文件
version: '3.3'services: db: image: postgres restart: always environment: POSTGRES_PASSWORD: password
我们可以看见dockercompose提供了一个灵活的和可配置的数据库运行环境。
清除
清除容器很简单,只须要运行如下命令
docker-compose down docker system prune -a docker volume prune
使用Dockercomposition,我们可以在安全、隔离的环境中运行一个容器化数据库,同时依然就能立刻修改数据库的类型。除此之外,在小型项目中,我们可以充分借助Docker一次组合和编排所有不同的服务。正如您所听到的,我们只须要复制/粘贴一个YAML文件并运行docker-up,便于拥有一个完全可操作的开发数据库。
其实,简单的运行一个mysql服务是容易的。并且,假如要运行到生产环境还须要大量的有针对的测试。我在项目中就遇见过mysql总是omm的情况。并且在数学机环境就没有,之后我调优了大量的参数docker compose 教程linux操作系统下载,才解决了这个问题。