最简单的Docker部署.netcore webApi 一看就会
2023-10-22 00:54 freshfresh 阅读(2160) 评论(0) 编辑 收藏 举报
学会如何使用Docker部署.NET Core WebAPI
- 用vscode新建一个文件,文件名存为:dockerfile 不要后缀名
- 本地发布一下项目,然后把dockerfile放到发布后的目录里或则选择属性始终复制
- 创建完之后,发布一下,然后到publish文件夹下面新建个dockerfile,填上四行代码
- FROM mcr.microsoft.com/dotnet/aspnet:7.0
- WORKDIR /app
- COPY . .
- ENTRYPOINT ["dotnet", "WebApi.dll"]
- 右键一个txt,然后把后缀名去掉,点保存
- 这个文件,右键属性,选择始终复制到生成目录
- 然后发布项目,发布完以后,检查publish目录是否有dockerfile文件
- 再把publish上传到服务器,然后cd到publish目录,执行构建命令,在执行启动命令
- cd到docker目录执行构建命令
- docker build -t myimage .
- myimage表示镜像名
- docker run --restart always -d -p 8081:80 --name admin_api admin
- 默认是80,执行docker run命令的时候,将80映射到外网的8081,再通过8081就可以访问了
- 通过 docker images可以查看镜像列表
- 这个镜像是上一步执行下面命令来的
- docker build -t webapi .
- docker run-- restart always -d -p 8081:80- -name webapi webapi
- docker ps -a
- docker stop 容器名
- docker rm 容器名
- 可以写多个 -p ,来指定多个端口,这些指定网络、挂载目录啥的,都可以通过 参数处理
- 自己的项目,一般是需要自己构建镜像的,可以提前通过 docker build构建到本地,再修改yaml文件
- dockerfile是用来构建镜像的,yaml是用来构建容器的
- 先通过dockerfile打包镜像 再通过命令或者yaml文件启动容器
Docker,作为一种流行的容器化技术,旨在为开发人员和系统管理员提供一种便捷的方式来构建、部署和运行应用程序。而Docker镜像则是Docker的核心概念之一,它可以被看作是一个包含了应用程序运行所需的所有组件、环境和代码的虚拟化环境。
那么如何打包Docker镜像呢?在本文中,我们将介绍Docker打包镜像文件的流程及注意事项。
Docker镜像概述
在了解如何打包Docker镜像之前,我们需要先了解Docker镜像的基本知识。
Docker镜像是由Dockerfile文件定义的。Dockerfile是一个包含了一系列指令的文本文件,它描述了这个Docker镜像应该如何构建。在构建Docker镜像时,Docker将按照Dockerfile中的指令一步一步地执行,并生成一个新的镜像。
Docker打包镜像流程
下面是一般情况下打包Docker镜像的流程:
1.编写Dockerfile
首先,我们需要创建一个Dockerfile文件,来定义我们的Docker镜像应该包含哪些内容及如何构建。
一个典型的Dockerfile可能包含以下指令:
-
FROM:指定用作基础镜像的镜像名称。
-
MAINTAINER:指定镜像的作者信息。
-
RUN:执行指定的命令和操作。
-
COPY:将本地文件复制到镜像中。
-
WORKDIR:设置当前工作目录。
-
CMD:指定容器启动时需要执行的命令。
2.构建Docker镜像
构建Docker镜像需要使用docker build命令,该命令可以根据Dockerfile中的指令自动构建新的镜像。
命令格式如下:
docker build -t 镜像名
如下所示:
docker build -t my-image /path/to/Dockerfile
-t
参数指定了新构建的镜像的名称,/path/to/Dockerfile
指定了Dockerfile所在的路径。
3.运行Docker容器
构建好Docker镜像之后,我们需要使用docker run命令来启动容器并运行我们的应用程序。
命令格式如下:
docker run -p <宿主机端口>:<容器端口> -d <镜像名称>
如下所示:
docker run -p 8080:80 -d my-image
-p
参数指定了宿主机端口和容器端口之间的映射关系,-d
参数指定了容器运行在后台模式下。
4.查看Docker容器
通过docker ps命令可以查看当前运行的Docker容器,命令格式如下:
docker ps
5.停止Docker容器
当我们需要停止一个Docker容器时,可以使用docker stop命令,命令格式如下:
docker stop <容器ID>
6.删除Docker容器
当我们需要删除一个Docker容器时,可以使用docker rm命令,命令格式如下:
docker rm <容器ID>
7.删除Docker镜像
当我们需要删除一个Docker镜像时,可以使用docker rmi命令,命令格式如下:
docker rmi <镜像名称>
注意事项
在打包Docker镜像时,需要注意以下几点:
-
在编写Dockerfile时,尽可能地保持Dockerfile的简单、通用和可重用性。
-
在构建Docker镜像时,尽量使用更小的基础镜像(buildah、podman试试?),以最小化镜像的大小和资源占用。
-
尽量将本地文件复制到容器中,而不是手动将文件上传到容器中,以避免安全问题。
-
在使用Docker构建镜像时,需要确保镜像能够正常运行,并具有所需的功能和性能。
-
在删除Docker容器和镜像时,需要谨慎操作,以免误删重要数据。
总结
打包Docker镜像是使用Docker的核心技能之一,它可以为开发人员和系统管理员提供一种方便、快捷和可重复的方式来构建、测试和部署应用程序。通过本文的介绍,相信大家对此已经有了一定的了解,希望能够对大家在实际工作中使用Docker提供一定的帮助。
3)此外,修改 /etc/environment 这个文件也能实现环境变量的设置。
/etc/environment是设置整个系统的环境,而/etc/profile是设置所有用户的环境,前者与登录用户无关,后者与登录用户有关。 注:系统是先执行/etc/environment,再执行/etc/profile
修改示例
以修改/etc/profile 为例:
PATH="$PATH:/root/.config/composer/vendor/bin"
export PATH
修改后执行如下命令使其立即生效:
source /etc/profile
如果想多加个路径yourpath1,在将“:yourpath1” 加载path后面,如:
PATH=”$PATH:/root/.config/composer/vendor/bin:yourpath1”
export作用说明:
-
export用于声明一个环境变量:
-
export variable=value
-
该环境变量只在本进程和其子进程中可以访问。
-
如果是在系统级的配置文件中,如/etc/profile中export 一个变量,那么这个变量就会在整个系统运行期间都起作用。
-
如果在用户级~/.bash_profile之类的文件中,则每次启动shell都会去读这个文件,所以每次打开shell也是可以取到这个值的。
-
如果在某一次运行中,手动export一个变量,则只在这次shell的使用中,才能访问这个变量,或者在该shell启动的其他程序中,也是可以访问这个变量的,因为它们是这个shell的子进程。
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架