docker-compose
接下来介绍另一种方法docker-compose
上面介绍了用纯docker 命令启动容器,链接容器,但是每次启动容器时都要填写一堆参数,难免容易出错,出错了之后还要删除该容器才能重新跑。接下来就介绍一下 docker-compose.
一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose,不再需要使用shell脚本来启动容器。在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器。
首先安装docker-compose
// 安装pip
sudo yum install epel-release
sudo yum install -y python-pip
//使用pip 安装
sudo pip install -U docker-compose
Compose的默认配置文件是docker-compose.yml。让我们看看下面这个文件:
以上的配置文件路径有绝对路径,有相对路径,build 参数代表该路径下的Dockerfile
先看一下大概的目录结构
$ tree composeTest
composeTest
├── code
│ ├── index.php
│ ├── mysql.php
│ └── testmysql.php
├── docker-compose.yml
├── index.php
├── mysql
│ ├── data
│ │ ├── auto.cnf
│ │ ├── ibdata1
│ │ ├── ib_logfile0
│ │ ├── ib_logfile1
│ │ ├── mysql [error opening dir]
│ │ ├── performance_schema [error opening dir]
│ │ └── test_db [error opening dir]
│ └── Dockerfile
├── nginx
│ ├── conf
│ │ └── default.conf
│ └── Dockerfile
└── phpfpm
└── Dockerfile
10 directories, 23 files
// Dockerfile 如下
$ cat composeTest/mysql/Dockerfile
FROM mysql:5.6
# tanhui @ localhost in ~ [20:57:51]
$ cat composeTest/phpfpm/Dockerfile
FROM php:5.6-fpm
RUN apt-get update && apt-get install -y \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng12-dev \
vim \
&& docker-php-ext-install pdo_mysql \
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
&& docker-php-ext-install gd \
# tanhui @ localhost in ~ [20:58:19]
$ cat composeTest/nginx/Dockerfile
FROM nginx:latest
RUN apt-get update && apt-get install -y vim
现在运行这三个容器只要使用命令 docker-compose up -d
yum update
yum remove docker docker-common docker-selinux docker-engine
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum list docker-ce --showduplicates|sort -r
yum install docker-ce-18.03.1.ce -y
systemctl start docker
systemctl enable docker
vi /etc/docker/daemon.json
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
docker-compose的安装通过pip安装
yum -y install epel-release
yum -y install python-pip
pip --version
pip 8.1.2 from /usr/lib/python2.7/site-packages (python 2.7)
pip install docker-compose==1.22
如果报错:
pip uninstall urllib3
pip uninstall chardet
pip install requests
网友评论