CentOS下使用Docker方式部署.NetCore

运行环境

CPU&内存:1核 2 GiB

操作系统:CentOS 7.9 64位

1、安装Docker

# 安装Docker
yum -y install docker-ce

# 查看版本,测试是否安装成功
docker version

 2、 复制发布的文件到CentOS上

通过Xftp,将发布后的publish内文件复制到centos指定文件。

CentOS下使用Docker方式部署.NetCore_第1张图片

3、构建Dockerfile文件

在目标文件根目录新建Dockerfile文件

FROM mcr.microsoft.com/dotnet/aspnet:3.1
WORKDIR /app
EXPOSE 80
COPY . .
ENTRYPOINT ["dotnet", "WebApplication1.dll"]
# ENV ASPNETCORE_ENVIRONMENT Development

1.FROM
基于/dotnet/aspnet:3.1构建镜像
2.WORKDIR
设置工作目录为 '/app' 文件夹,即容器启动默认的文件夹
3.EXPOSE
设置Docker容器对外暴露80端口
4.COPY
将当前目录下的所有文件(除了.dockerignore排除的路径),都拷贝进入 image 文件的/app目录,这里是两个参数
5.ENTRYPOINT
使用'dotnet Core. WebApplication1.dll'来运行应用程序
6.ENV
如有需要指定环境变量,在文件加上:ENV ASPNETCORE_ENVIRONMENT Development

4、镜像发布为容器

# 进入程序的发布文件目录
cd /home/webapp

# 查看docker状态是否开启
systemctl status docker

# 开启docker
systemctl start docker

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

# 查看镜像
docker images

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

Docker容器的最佳实践一个容器运行一个进程。多个进程都部署在一个容器中,很多弊端。比如更新某个进程的镜像时,其他进程也会被迫重启,如果一个进程出问题导致容器挂了,所有进程都将无法访问。

总结上述:意味着一个容器就暴露一个端口,所以我们就按照默认端口80启动。

5、查看服务是否运行成功

CentOS下使用Docker方式部署.NetCore_第2张图片

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 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]

你可能感兴趣的:(Net,Linux,Docker,docker,.netcore,c#,linux,centos)