该笔记大部分搬运B站狂神说Java的Docker进阶,顺便把图文合并记录,便于回顾,仅用于学习!
视频地址:https://www.bilibili.com/video/BV1kv411q7Qc 作者真的非常好,别白嫖,记得三连
如有侵权,请联系删除!
1. 概念
docker compose:来构建和管理 Docker 容器中的多个服务。
源码地址:https://github.com/docker/compose
官网:https://docs.docker.com/compose/
在线学习网站:https://vuepress.mirror.docker-practice.com/compose/introduction/
2. Docker Compose三步骤
- 使用 a 定义应用的环境,以便可以在任何地方复制。Dockerfile
- 定义构成应用的服务,以便它们可以在孤立的环境中一起运行。docker-compose.yml
- 最后,运行和撰写将启动和运行您的整个应用程序。docker-compose up
官网:一个docker-compose类似与这样
假如在需要启动100个服务,我们只需要在docker-compose.yml中配置然后通过docker-compose up启动即可!
compose重要概念:
- 服务 (service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。
- 项目 (project):由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义。
3. 安装Compose
# 官网提供 (没有下载成功)
curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 国内地址
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
查看是否安装成功!
授予权限
sudo chmod +x /usr/local/bin/docker-compose
解决安装不成功方案:https://blog.csdn.net/qq_35663625/article/details/107411857
查看安装版本
4. 卸载Compose
如果是二进制包方式安装的,删除二进制文件即可。
sudo rm /usr/local/bin/docker-compose
如果是通过 pip 安装的,则执行如下命令即可删除。
sudo pip uninstall docker-compose
5. 体验Compose
参考官网:https://docs.docker.com/compose/gettingstarted/
docker ps
docker images
流程:
创建网络
执行Docker-compose.yaml
启动服务
yaml规则
docker-compose.yaml 核心!
查看网关
[root@localhost composetest]# docker network inspect composetest_default
发现处于同一网关,说明了什么?
如果处于同一个网络上,我们可以直接通过域名访问。
停止:
docker-compose dowm
或者
Ctrl+C
以前:通过docker run一个一个启动服务;
现在:通过docker-compose编写yaml一键启动服务。
6. yaml规则
参考网址:https://docs.docker.com/compose/compose-file/
# 3层!
version: ' '#版本
services: #服务
服务1: web
#服务配置
images
build
network
服务2: redis
服务3: redis
#其他配置网络/卷、全局规则
volumes:
networks :
configs:
集群中用到的
7. 一键部署WP博客
官网参考:https://docs.docker.com/samples/wordpress/
7.1 创建文件夹
在/home目录中创建一个命名为my_wordpress文件夹
7.2 编写yaml文件
version: "3.9"
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- wordpress_data:/var/www/html
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {
}
wordpress_data: {
}
7.3 启动
[root@localhost my_wordpress]# docker-compose up
查看是否开启成功:
测试:通过ip:8000端口号进行访问
8. 实战流程
1、编写项目微服务
2、dockerfile 构建镜像
3、docker-compose.yaml 编排项目
4、丢到服务器docker-compose up
小结:
未来项目只要有docker-compose文件。按照这个规则,启动编排容器。!
公司: docker-compose。 直接启动。
网上开源项目: docker-compose -键搞定。
假设项目要重新部署打包
docker-compose up --build #重新构建!