介绍

Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。

用Docker发布一个项目

环境介绍

系统:Windows11/32G
Docker: Docker Desktop
VS版本:2022最新版
Web项目:.NET5版本即可

第一步、发布应用程序到指定文件夹

Alt text

Alt text

Alt text

第二步、 创建Dockfile文件

WebApplication1.dll 项目名称的dll文件

#拉取运行时镜像
FROM mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim
#启动命令行执行命令
RUN ln -s /lib/x86_64-linux-gnu/libdl-2.24.so /lib/x86_64-linux-gnu/libdl.so
RUN apt-get update
ENV TZ "Asia/Shanghai"
WORKDIR /app
#暴露端口
EXPOSE 80
#拷贝项目文件
COPY ./ .
#启动项目
ENTRYPOINT ["dotnet", "WebApplication1.dll"]

Alt text

第三步、 构建镜像

Alt text

docker build -t samples . 构建当前项目镜像

Alt text

docker images 查看已有镜像

Alt text

第四步、 运行容器

-d 后台运行 -p 指定映射端口 –name 容器名称 –restart 重启方式

docker run -d -p 5001:80 --name samples samples --restart=always

Alt text

docker logs samples 查看容器日志

Alt text

浏览器访问:http://localhost:5001

Alt text

用 Docker Compose 发布多个项目

第一步、编写文件

新建文件夹 samples

Alt text

如何编写docker-compose.yml文件?请点击 菜鸟教程
新建文件 docker-compose.yml文件,定义三个服务

version: '3.4'

services:
#服务名称
samples1:
#镜像名称
image: samples
#容器名称
container_name: samples1
#重启方式
restart: always
#映射端口
ports:
- 5002:80
samples2:
image: samples
container_name: samples2
restart: always
ports:
- 5003:80
samples3:
image: samples
container_name: samples3
restart: always
ports:
- 5004:80

Alt text

第二步、启动服务

Alt text

docker-compose up -d 启动所有服务

Alt text

浏览器访问:http://localhost:5002 http://localhost:5003 http://localhost:5004

经验总结

通过以上实践,你已完成docker的部署。 你会发现非常简单 , 如果你想挂载目录、配置SSL、映射其他端口我相信已经难不倒你了,只是加一个参数的事情! 下面是一些常用的命令,以及 Consul集群 、 Redis主从、Redis哨兵的docker-compose文件,以供参考。

使用Docker操作单个服务命令介绍

#停止容器
docker stop 容器名称
#删除容器
docker rm 容器名称
#删除镜像
docker rmi 镜像名称
#进入发布文件夹
cd /web/项目目录
#打包镜像
docker build -t 镜像名称 .
#运行镜像 -d 后台运行 -p 指定映射端口 --name 容器名称 --restart 重启方式
docker run -d -p 5440:80 --name 容器名称 镜像名称 --restart=always
#查看容器日志
docker logs 容器名称

使用Docker Compose 操作多个服务命令介绍

不同上面的docker指令 ,我们这里用的是服务名称,稍后会做介绍

#后台启动所有服务
docker-compose up -d
#关闭所有服务
docker-compose down
#后台启动指定服务
docker-compose up -d 服务名称
#重启指定服务
docker-compose restart 服务名称
#停止指定服务
docker-compose stop 服务名称
#删除指定服务容器
docker-compose rm 服务名称
#启动指定容器
docker-compose start 服务名称
#查看指定容器日志
docker-compose logs 服务名称
#删除所有容器以及镜像
docker-compose down --rmi all

Consul集群

点击下载

Redis主从

点击下载

Redis哨兵

点击下载