Docker是一个开源的容器虚拟化平台 , Docker Compose是一个用来定义和运行复杂应用的Docker工具。使用Compose,你可以在一个文件中定义一个多容器应用,然后使用一条命令来启动你的应用,完成一切准备工作。;
- CentOS 7.0下Docker的安装
1.查看内核版本(Docker需要64位版本,同时内核版本在3.10以上,如果版本低于3.10,需要升级内核):
1 | uname -r |
2.更新yum包:
1 | yum update |
3.添加yum仓库:
1 | sudo tee /etc/yum.repos.d/docker.repo <<-'EOF' |
4.安装Docker
1 | yum install docker-engine |
5.启动Docker
1 | systemctl start docker.service 或者 service docker start |
6.使用Docker国内镜像(为Docker镜像下载提速,非必须)
1 | curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://fe8a7d6e.m.daocloud.io |
- docker-compose 简介
一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose,不再需要使用shell脚本来启动容器。在配置文件中,所有的容器通过services
来定义,然后使用 docker-compose
脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器。完整的命令列表如下:
build
构建或重建服务help
命令帮助kill
杀掉容器logs
显示容器的输出内容port
打印绑定的开放端口ps
显示容器pull
拉取服务镜像restart
重启服务rm
删除停止的容器run
运行一个一次性命令scale
设置服务的容器数目start
开启服务stop
停止服务up
创建并启动容器
参考 https://docs.docker.com/compose/install/ 。你能运行Compose在OSX和64位Linux。当前不支持Windows操作系统。
- 安装Docker Compose
curl方式
1 | curl -L https://github.com/docker/compose/releases/download/1.7.0/docker-compose-`uname -s `-`uname -m` > /usr/local/bin/docker-compose |
python-pip 方式
1 | yum -y install -y epel-release #安装pip需要先安装epel-release包 |
如果docker-compose报错
1 | Traceback (most recent call last): |
输入:
1 | pip install --upgrade backports.ssl_match_hostname |
配置文件
Compose的配置文件是docker-compose.yml。让我们看看下面这个文件:
1 | mysqldb: |
a. 定义了两个服务分别叫做mysqldb
和mywildfy
b. 使用image
定义每个服务的镜像名
c. MySQL容器的环境变量定义在environment
d. MySQL容器使用links
和WildFly
容器链接
e. 使用ports
实现端口转发
启动服务
1.如果你从互联网运行,将docker-compose-internet.yml
保存为docker-compose.yml
。
2.如果你使用教师给的镜像,将docker-compose-instructor.yml
保存为docker-compose.yml
。
3.使用下面的命令,所有的服务将使用后台模式被启动
1 | docker-compose up -d |
显示的输出如下:Creating attendees_mysqldb_1... Creating attendees_mywildfly_1...
使用-f指定代替的compose文件。
使用-p指定代替compose文件所在的目录。
这里提供了一个整合的列表显示所有启动的服务和容器。
同时,通常使用docker ps
命令来验证应用的容器,和在Docker主机上运行的其他容器。
1 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES |