CentOS7下Docker与.net Core 2.2
一、使用 yum 安装(CentOS 7下)
Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
通过 uname -r 命令查看你当前的内核版本
二、安装 Docker
从 2017 年 3 月开始 docker 在原来的基础上分为两个分支版本: Docker CE 和 Docker EE。
Docker CE 即社区免费版,Docker EE 即企业版,强调安全,但需付费使用。
1、移除旧的版本
$ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine
2、安装一些必要的系统工具
1 | sudo yum install -y yum-utils device-mapper-persistent-data lvm2 |
3、添加软件源信息
1 | sudo yum-config-manager --add-repo http: //mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo |
4、更新 yum 缓存
1 | sudo yum makecache fast |
5、安装 Docker-ce
1 | sudo yum -y install docker-ce |
6、启动 Docker 后台服务
1 | sudo systemctl start docker |
7、测试运行 hello-world
1 | [root@localhost /]# docker run hello-world |
二、Asp.Net Core2.2 web程序
dockerfile是你的应用部署到docker上所必须的配置信息,只是个不带扩展名的纯文本文件而已
设置Makefile属性【始终复制】
Dockerfile内容为
1 FROM microsoft/dotnet:2.2-aspnetcore-runtime #基础镜像为dotnetcore
2 MAINTAINER demo #作者
3
4 LABEL description="this is a test website" #描述
5 LABEL version="1.0" #描述
6
7 WORKDIR /app #工作目录
8 COPY . . #将当前目录下的文件,复制到WORKDIR目录
9 EXPOSE 8888 #容器暴漏8888端口,与上一步设置的端口一致
10 ENTRYPOINT ["dotnet","demo.dll"] #运行容器的命令
修改Program.cs文件
1 namespace demo
2 {
3 public class Program
4 {
5 public static void Main(string[] args)
6 {
7 CreateWebHostBuilder(args).Build().Run();
8 }
9
10 public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
11 WebHost.CreateDefaultBuilder(args)
12 .UseUrls("http://*:8888")
13 .UseStartup<Startup>();
14 }
15 }
发布,文件系统
默认位置
1 | demo\bin\Release\netcoreapp2.2\publish |
三、构建镜像
1、切换到发布目录
1 | [root@localhost publish] |
2、修改Makefile文件
指定容器对外暴露端口80。注意,COPY .后面有空格,表示是当前位置,意思是从当前位置复制文件到/publish目录下
3、根据当前目录下dockerfile配置文件,进行打包
1 | [root@localhost publish]# docker build -t demo . |
4、查看我们打包好的镜像。
1 | [root@localhost publish]# docker images |
四、运行docker容器
1 | [root@localhost publish]# docker run -d -p 8888:8888 demo |
-p是进行宿主和容器之间端口的映射,(-p 宿主端口:容器端口)
-d命令,容器就会一直运行,即使关掉终端窗口
检验docker容器是否运行成功
五、测试
本机要输Centos的IP
Centos内访问localhost就可以了
说明
1、配置docker开机启动
1 | systemctl enable docker |
2、确认容器有在运行
1 | [root@localhost /]# docker ps |
CONTAINER ID:容器ID
NAMES:自动分配的容器名称
在容器内使用docker logs命令,查看容器内的标准输出
3、开始/停止容器
1 | [root@localhost /]# docker start/stop 容器id或者容器名 |
4、重启docker服务,遇到此类错误
原因是docker服务挂掉了
1 | systemctl restart docker |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!