docker部署Asp.net core应用的完整步骤(2)

## 查看docker版本和信息 #查看docker-cli的版本 docker --version #查看docker版本和信息 docker version docker info ## docker镜像相关命令 #拉取镜像 docker pull [imgName:tag] #运行镜像,执行后会生成一个容器 docker run [imgName:tag/imgID] #查看所有的镜像 docker images #删除镜像 执行rmi命令前必须删除所有该镜像的container docker rmi [imgName:tag/imgID] #查看所有的容器,没有-a表示查询所有正在运行中的容器 docker container ls -a #查看docker正在运行和已经停止的容器 docker ps -a #启动容器 docker start [ctnName/cID] #停止容器 docker stop [ctnName/cID] #删除容器,执行rm命令前必须先停止该容器 docke rm [ctnName/cID] ##清理镜像和容器 #删除所有的镜像和容器 docker kill $(docker ps -q) ; docker rm $(docker ps -a -q) ; docker rmi $(docker images -q -a) #删除所有的容器 docker kill $(docker ps -q) ; docker rm $(docker ps -a -q) #清除名称为none的镜像 docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker stop docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker rm docker images|grep none|awk '{print $3 }'|xargs docker rmi

有时候我们需要和容器交互,可以使用命令docker exec -it [name/id] common。如我们启动一个mysql容器mysqlx1,执行docker exec -it mysqlx1 mysql -p表示和容器mysqlx1交互,执行的命令是【mysql -p】进行登录,如下所示。Ctrl +p+q退出容器,回到服务器目录。

docker部署Asp.net core应用的完整步骤

3 定制容器

大多数用户使用docker的核心目的是更方便的交付项目,就是将我们的应用程序构建成镜像,然后交付镜像即可,这里演示怎么构建一个Aspnet core项目的镜像。

1. 开发aspnet core应用

我们创建一个Asp net core MVC项目,项目名为DockerDemo,为了方便不勾选Https和Docker支持,如下:

docker部署Asp.net core应用的完整步骤

简单修改首页,运行一下,测试项目没有bug,运行首页如下:

docker部署Asp.net core应用的完整步骤

2 发布项目,添加Dockerfile

发布项目,然后在发布文件夹下添加Dockerfile文件,结构如下:

docker部署Asp.net core应用的完整步骤

Dockerfile的内容如下:

#拉取runtime父镜像,运行aspnet core应用必须要用runtime FROM microsoft/dotnet:2.2-aspnetcore-runtime #设置容器工作目录 WORKDIR /DockerDemo #把当前目录的所有文件copy到工作目录中 COPY . /DockerDemo #暴露一个端口让外部可以访问 EXPOSE 80 #容器入口命令,即容器启动时执行dotnet DockerDemo.dll命令 ENTRYPOINT ["dotnet", "DockerDemo.dll"]

Dockerfile常见指令简单说明

Dockerfile常用指令: #FROM:通常情况下,我们创建的镜像时基于另外一个镜像的,这时就要用FROM,当然我们也可以完全从头创建 #WORKDIR:设置容器的工作目录 #MAINTAINER:该镜像的维护人 #COPY:经常需要把源码复制到容器中,只用COPY就可以实现这一点 #RUN:这里可以定义一些需要运行的命令,执行的目录是WORKDIR。如npm install ,dotnet restore,dotnet run等 #ENTRYPOINT:定义容器的入口,通常是一些dotnet/node等命令,如dotnet xxx.dll #CMD:设置容器运行的默认命令和参数,即容器启动时执行的命令。当容器运行时,可以通过命令行覆盖CMD定义的命令 #EXPOSE:暴露端口 #ENV:设置环境变量

3 创建镜像

docker创建镜像很简单,执行docker build -t dockerdemo:v1.0 .命令即可创建镜像,其中dockerdemo:v1.0是镜像的名字和版本tag,名字和tag可以随便设置。然后通过docker images命令查看所有镜像,如下:

4 运行容器

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wdsgwg.html