Docker Compose 概述与安装?
- 前面我们使用 Docker 的时候,定义 Dockerfile 文件,然后使用 docker build、docker run 等命令操作容器。然而微服务架构的应用系统一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,那么效率之低,维护量之大可想而知
-
使用 Docker Compose 可以轻松、高效的管理容器,它是一个用于定义和运行多容器 Docker 的应用程序工具
一、安装docker compose :
同样我们可以通过官方文档指引来完成安装docker compose :(官方地址:Install Docker Compose | Docker Documentation)
1.直接执行这行命令下载当前最新稳定版本的docker compose :
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
2.修改文件权限,赋可执行权限:
sudo chmod +x /usr/local/bin/docker-compose
3.这步是可行的,把文件软链到 /usr/bin/目录下面:
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
4.查看docker compose 版本:
docker-compose --version
到这里,docker compose 算是已经安装完成了,接下来可以直接用docker-compose 来管理docker 容器了。
docker 的镜像源我们可以选官方的、阿里的和清华大学的:
清华大学源
yum-config-manager \
--add-repo \
https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
阿里云
$ sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
使用官方源地址(比较慢)
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
1.编写docker-compose yml (如果对YAML语法不熟悉的同学,可以自行学习)
version: '3'
services:
web:
image: nginx:1.20.2 (选取的镜像)
container_name: nginx (容器的名称)
ports: (端口映射到宿主机)
- "8099:80"
volumes:(目录映射到宿主机)
- /home/ubuntu/docker/nginx/html/:/usr/share/nginx
- /home/ubuntu/docker/nginx/conf.d:/etc/nginx/conf.d
links: (映射ip记录到当前容器中)
- php
depends_on:
- php
mysql:
image: mysql:5.7
container_name: mysql
ports:
- "3307:3306" (此处可以不映射出来)
environment:(设置环境变量)
MYSQL_ROOT_PASSWORD: (要设置的密码)
redis:
image: redis
container_name: redis
php:
image: php:8.0-fpm
container_name: php8
links:
- redis
- mysql
depends_on:
- redis
执行docker-compose up -d (-d表示在后台运行)
docker-compose ps 查看可以看到所有容器都启动了。
重启所有容器:
docker-compose restart
启动所有容器:
docker-compose start
停止所有容器:
docker-compose stop
也可对单个容器进行管理:
docker-compose stop nginx 停止 nginx容器
以上编写的docker-compose.yml是直接拉取镜像来启动容器,我们也可以通过使用dockerfile来启动:
首先来编写一个dockerfile, 放在当前目录下的tmp目录里面:
FROM php:8.0-fpm
ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/
RUN chmod +x /usr/local/bin/install-php-extensions && \
install-php-extensions gd xdebug redis mongodb
接下来编写docker-compose.yml
version: '3'
services:
php:
build:
context: ./tmp
dockerfile: dockerfile
container_name: php8
现在来直接执行docker-compose up -d
也可以达到同样的效果,且能过dockerfile来启动容器,可以让我们在编写dockerfile时,提前做好一些对容器的操作,如安装一些扩展,安装必要的程序等。
好了,这期我们就先分享到这里,大家如果喜欢我们的话,请点击收藏哦,下期我们将介绍现在市场上最热门的技术之一K8S(kubernets)容器云技术方案。
如果你喜欢我们的文章,欢迎关注我们的微信公众号,及时收到我们最新的技术文章
回复关键字还可以获取更多技术学习内容哦!