docker 发布部署篇

发布时间 2024-01-04 17:52:35作者: zlmzxzpy

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后面