.netcore 部署docker

没有特殊要求 尽量别把nginx放在docker中。建议把nginx放在主机。
 
1.代码新建一个dockerfile容器文件。
下面容器代码9527容器端口。
FROM mcr.microsoft.com/dotnet/aspnet:3.1 AS base
WORKDIR /app
EXPOSE 9527
COPY . .
ENTRYPOINT ["dotnet", "myapidemo.dll"]

2.代码中program.cs需要处理一下端口。

 

新建个json文件:host.json

 打包发布后放到centos目录下即可。

3.构建镜像,镜像发布容器。前提是安装好docker。园子里很多教程可以去搜一下。

# 进入程序的发布文件目录,这个目录是发布后的代码,存放到centos的路径
cd /home/docker_core

 


# 首先构建成镜像 
# -t 指定镜像名(必须小写,可以冒号指定标签如webappimg)  
# . 表示Dockerfile所在目录(PS:注意最后的 点)
docker build -t webappimg .

 


# 查看镜像
docker images

 


# 然后镜像发布为容器
# --name 指定容器名称
# -d 指定容器后台运行 
# -p 主机(宿主)端口:容器端口(容器端口映射到主机(宿主)端口 )
# webappimg镜像名
docker run --name webappdocker -d -p 8899:9527 webappimg

 

本地就可以直接用ip+端口(8899)访问了。例如:10.100.101.129:8899/exp

 

 简单说就是,代码(dockerfile) 本身有一个端口,比如是9527,然后在用docker构建一个镜像,转换为容器的时候,做一个映射,我不想用9527了,我想让别人通过8899这种端口访问。

 

Docker相关命令

# 查看所有容器运行状态
docker ps -a
docker ps --all
 
# 查看docker状态
systemctl status docker 
 
# 重启docker
systemctl restart docker
 
# 删除容器
docker rm [CONTAINER_ID]
 
# 停用全部运行中的容器
docker stop $(docker ps -q)
 
# 删除所有容器(要先停用才能删除)
docker rm $(docker ps -aq)
#启动容器
docker start 容器名
# 查看镜像 docker images # 删除镜像 docker rmi [IMAGE_ID] # 删除所有镜像 docker rmi $(docker images
-aq) # 查看容器日志 docker logs -f [CONTAINER_ID] # 容器内访问 docker exec -t webapp_v1 curl -L localhost/home/index # 进入容器 docker exec -it [CONTAINER_ID] bash # 查看容器所有状态信息 docker inspect [CONTAINER_ID] # 查看容器ip地址 docker inspect --format='{{.NetworkSettings.IPAddress}}' [CONTAINER_ID]

参考:

CentOS下使用Docker方式部署.NetCore-CSDN博客

centos 7 使用 docker 部署.net core 项目 - 温故纳新 - 博客园 (cnblogs.com)

 

posted @ 2024-06-20 17:39  路边有一棵草  阅读(67)  评论(0编辑  收藏  举报