作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

我们在上一章,讲了虚拟化,虚拟化是把硬件虚拟化,然后创建出来的虚拟机完全隔离,而Docker则是软件(内核)虚拟化,他的隔离性会低于虚拟机。我们将通过3-4周来讲解Docker相关内容,由于涉及到内容较多,就不一一列出来具体的细节,主要从以下几个方面来讲解:
Docker基本情况
Docker基本命令
Dockerfile
Docker镜像
Docker仓库
Docker原理
Docker网络&存储&日志
Docker-Compose(本小节属于)
Docker番外篇
为什么明明在讲Docker的仓库,突然跳到Compose呢,因为我们要讲的仓库Harbor就是基于Compose来部署的,所以需要先了解这个Compose是怎么一回事。
Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。通过一个 YAML 文件来配置应用程序的服务,然后使用一个命令即可创建并启动所有服务。这对于需要多个相互关联的服务(如 Web 应用、数据库等)的应用程序来说非常有用。
我们在讲解Docker-详细信息和目录介绍的时候讲解过,从20.10版本的Docker开始就自动集成了Compose,唯一的区别就是命令的区别:
#旧版本
docker-compose xxx
# 新版本,以子命令方式呈现
docker compose xxx
下面就是我根据需求模拟出来的一个Compose范例:一个由3个容器组成的集合:包括一个nginx容器,取名为web;一个数据库容器,取名为mysql;还有一个操作系统容器,取名为centos。
version:指版本,目前最新的版本都是3,所以这里默认即可。
services:这里就是容器最核心部分,几乎就认为是必选,否则就没有容器。
web/mysql/centos:则是我们给容器取的名字,根据具体需求取名即可。
image:对应的镜像。
ports:对应的端口映射,前面是宿主机端口,后面是容器端口
working_dir: 对应工作目录。
restart:对应容器关闭以后是否自动拉起。
environment:环境变量,等效env参数。
command/tty: 前面2个容器都是自己的前台进程,而centos容器没有,所以通过这个方式来实现容器前台进程。
networks:如果没有这个选项,则使用docker默认的网络服务,如果在这里指定,则使用指定的网桥(如果多个应用都使用compose部署,则可以把他们的网络进行隔离),如果使用了指定的网络,则需要在services同级选项添加network选项。

volume:将宿主机的目录挂到容器里面,这里有两种选项:一种就是直接挂载目录,参考web这个容器;另外一种就是使用docker的volume功能,参考mysql容器(如果是使用了这个,需要在service同级添加volume选项)。

version: '3'
services:
web:
image: '192.168.31.43:5000/nginx:1.27.2'
ports:
- "8080:80"
working_dir: /var/www/html
volumes:
- ./web:/var/www/html
restart: always
networks:
- app-network
mysql:
image: '192.168.31.43:5000/mysql:5.7'
environment:
- MYSQL_ROOT_PASSWORD=my-secret-pw
volumes:
- mysql-data:/var/lib/mysql
restart: always
networks:
- app-network
centos:
image: '192.168.31.43:5000/centos:7'
command: "/bin/bash"
tty: true
working_dir: /app
volumes:
- ./centos-app:/app
restart: always
networks:
- app-network
volumes:
mysql-data:
networks:
app-network:
driver: bridge
常用命令
#前台启动
docker compose up
#后台启动
docker compose up -d
#停止
docker compose down
当然这里还有很多命令,我们并有讲,格式类似docker compose xxx,可以自己下去体验。


运维小路
一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!
关注微信公众号《运维小路》获取更多内容。
1209

被折叠的 条评论
为什么被折叠?



