1.下载consul 拉取镜像
docker pull consul或者docker pull consul:1.6.1
2.安装并运行consul
docker run -d -p 8500:8500 --name=consul consul:1.6.1 agent -server -bootstrap -ui -node=1 -client='0.0.0.0'
--如果是退出exited 状态,则docker start #CONTAINER ID
consul部署完后,开始部署微服务
3.Build 镜像
docker build -t microsoftservice -f Dockerfile .
docker build -t microsoftservice1 -f Dockerfile .
docker build -t microsoftservice2 -f Dockerfile .
微服务映射端口
docker run -itd --name server1 -p 8004:80 microsoftservice4
docker run -itd --name server2 -p 8005:80 microsoftservice5
docker run -itd --name server3 -p 8006:80 microsoftservice6
修改dockerfile文件
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
COPY . .
ENTRYPOINT ["dotnet", "Zhaoxi.MicroService.ServiceInstance.dll"]
注意 cd 到对应的路径操作
完整步骤:
1、安装基础镜像(mcr.microsoft.com/dotnet/aspnet:6.0 和 mcr.microsoft.com/dotnet/sdk:6.0)
docker pull mcr.microsoft.com/dotnet/aspnet:6.0
docker pull mcr.microsoft.com/dotnet/sdk:6.0
安装.NetCoreSDK6.0
rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
yum install dotnet-sdk-6.0
检查环境:dotnet --info
2、更改Dockerfile文件
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
COPY . .
ENTRYPOINT ["dotnet", "Zhaoxi.MicroService.ServiceInstance.dll"]
FROM:意思是我们的项目源镜像是哪个;
WORKDIR:镜像的工作目录
EXPOSE:容器要开放的端口(我们用项目的8081端口)
COPY:复制文件(将Dockerfile所在目录下文件复制到镜像中的工作目录中)
ENTRYPOINT:为容器启动后要执行的命令 (这里将执行dotnet Docker.Core.Api.dll命令)
3、在linux上使用docker build生成镜像
Dockerfile文件与发布包在同一级目录:
docker build -t myfirstwebapp:latest .
Dockerfile文件,指定路戏
docker image build -f ./WebCoreWebCg03/Dockerfile -t myfirstwebapp:latest .
4、编译完成后,查看镜像
docker images
5、 将镜像运行起来生成容器
docker run --name=aspnetcore -p 5103:80 -d aspnetcore
这时候在浏览器输入地址和端口就能访问了
http://10.1.8.85:5103/
5.查看环境变量
方式一 docker inspect 命令来查看
方式二 docker exec 容器id env
20231101测试 端口映射
docker build -t aspnetcoredocker .
docker images
docker run --name=aspnetcoredocker -p 6666:80 -d aspnetcoredocker
docker ps
6、综合命令
cd /data/websites/service1/
docker stop service1
docker rmi service1 -f
docker rm service1
docker build --no-cache -t service1 .
docker run -e "ASPNETCORE_ENVIRONMENT=development" --name=service1 --privileged=true --restart=always -p 5005:80 -d service1
docker ps
注:-e "ASPNETCORE_ENVIRONMENT=development" 一定放在run后面
标签:run,部署,--,发布,build,dotnet,docker,Dockerfile From: https://www.cnblogs.com/zhanglimin222/p/17945157