Docker网络
今天主要是学习Docker的第五步(实在抱歉更新晚了,最近年终,工作比较饱和),掌握Docker Compose的使用,感兴趣的可以关注,后续会分类更新全部java的白话文教学内容;
完整项目已经放到文末,自行下载使用
接下来我们依旧带着下面三个问题来学习今天的内容:
1、它是什么?
2、为什么要用它?
3、如何使用?
一、Docker Compose是什么?
Compose是一个用于定义和运行多容器 Docker 应用程序的工具。Compose用 YAML 文件配置应用程序的服务。使用单一命令,可以从 YAML 文件配置中创建并启动所有服务。适用于所有环境生产、开发、测试以及 CI/CD 工作流程。
Docker 是 Docker Compose的前提,Docker Compose是为了简化使用 Docker 时多容器应用的管理和部署而设计的。两者之间相辅相成,Docker 提供容器化的核心功能,Docker Compose则管理这些容器的组合和交互。两者面向不同用户,Docker 面向任何需要容器化应用的用户,Docker Compose则面向需要同时管理多个容器的开发者和运维团队。
(白话文:说白了,Docker Compose就是为了我们更便捷的一次性定义和运行我们所有应用容器以及所依赖的其他三方容器的工具
二、为什么要使用Docker Compose?
我们都已经掌握了关于我们的应用只有一个服务的时候,通过定义一个Dockerfile文件,然后通过docker build 构建为一个镜像,然后通过docker run就可以运行起我们的应用程序。
那么思考一个问题:
如果我们的项目是一个微服务架构,其中可能有几十个服务,并且我们还需要依赖其他三方引用,比如,Redis、Mysql、Es等,这时候,如果我们依旧采用上述方式,那么我们就需要不断的去创建Dockerfile->docker build ->docker run ,可能每个容器需要执行几十个命令,效率非常低,并且还需要配置和维护容器之间的关系和网络信息,岂不是想想就头疼?
这时候,Docker Compose便应运而生,通过一个YML(docker-compose.yml)文件,来定义构成的应用程序的服务,便于隔离环境中一起运行,通过运行 docker-compose up 命令启动并运行整个应用程序,由于通过Docker Compose可以提前编写好脚本,等上线部署的时候几分钟就可以搞定了。比起传统的项目部署方式效率大大提升了。还可以达到一次编写脚本,达到多次部署的效果)
三、如何使用Docker Compose?
1、Compose 安装说明
说明: 新版本的Docker(如24.0.5)已经带有docker compose,不需要再单独安装。
我的Docker版本是:
[root@zw-study docker]# docker info
Client: Docker Engine - Community
Version: 26.1.4
Context: default
Debug Mode: false
Plugins:
buildx: Docker Buildx (Docker Inc.)
Version: v0.14.1
Path: /usr/libexec/docker/cli-plugins/docker-buildx
compose: Docker Compose (Docker Inc.)
Version: v2.27.1
Path: /usr/libexec/docker/cli-plugins/docker-compose
由于本身已经自带Docker Compose所以我这里就不再做安装讲解,没啥技术含量!!!
额。。。。算了我还是说下吧,因为有些兄弟的那个安装软件功底太差,怕看到没安装步骤,直接放弃学习了!!!
二进制方式安装(推荐国内镜像)
#这个是官方地址,可能比较慢
sudo curl -L "https://github.com/docker/compose/releases/download/2.27.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#国内镜像地址
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# 查看一下version,显示有版本号那就说明安装成功了
docker-compose -version
2、Docker Compose常用指令
docker-compose -h # 查看帮助
docker-compose up # 创建并运行所有容器
docker-compose up -d # 创建并后台运行所有容器
docker-compose -f docker-compose.yml up -d # 指定模板
docker-compose down # 停止并删除容器、网络、卷、镜像。
docker-compose logs # 查看容器输出日志
docker-compose logs -f 容器名 查看容器实时日志
docker-compose pull # 拉取依赖镜像
dokcer-compose config # 检查配置
dokcer-compose config -q # 检查配置,有问题才有输出
docker-compose restart # 重启服务
docker-compose start # 启动服务
docker-compose stop # 停止服务
docker-compose up -d nginx 构建建启动nignx容器
docker-compose exec nginx bash 登录到nginx容器中
docker-compose ps 显示所有容器
docker-compose build nginx 构建镜像
docker-compose build --no-cache nginx 不带缓存的构建
docker-compose config -q 验证(docker-compose