11、docker
1、官网
2、安装(centos)
https://docs.docker.com/engine/install/centos/
这里按照官方文档操作就行了,注意两点
a:安装之前yum update一下
b:安装 containerd.io (yum install containerd.io.rpm) 这个文档里没写
c:别安装windows桌面版,安装完你的虚拟机、安卓模拟器,统统没法用了
3、docker跑.net core 应用
3.1 创建一个.net core 应用
新建一个web application 应用,如图
别勾选哪个启动docker支持,会自动安装Windows桌面版的docker并开启Hyper-V,然后对你的虚拟机和安卓模拟器造成影响
然后点创建就行了
3.2 添加Dockerfile文件
内容如下,没有扩展名
# 使用运行时镜像 FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim # 设置工作目录 WORKDIR /app # 把目录下的内容都复制到当前目录下 COPY . . # 暴露80端口 EXPOSE 80 # 运行镜像入口命令和可执行文件名称 ENTRYPOINT ["dotnet", "Ares.HelloDocker.dll"]
基础dockerfile,根据真实的项目结构和需求肯定要修改,具体可以去查
https://docs.docker.com/engine/reference/builder/
然后把他的属性设置为始终复制
3.3 发布
右键点击项目名称
发布到一个文件夹
点击修改配置
更改
然后发布
3.4 部署
通过ftp上传到centos目录,切换到Dockerfile所在目录,运行打包命令
docker build -t ares.hellodocker .
注意最后带有英文的点
等待打包完成
日志可以看出来,就是执行dockerfile文件里的东西,先拉镜像,然后把程序塞到镜像里
从docker仓库拉镜像会比较慢,因为是拉的官方的,后面可以搭建自己的镜像仓库,或者用国内的源,这些不说了,运维的活儿,知道一下就行了
查看本地的镜像
启动镜像
docker run --name=ares.hellodocker -p 50001:80 -d ares.hellodocker
--name 镜像名称
-p 外部端口与内部端口的对应关系
-d 后台运行容器,并返回容器ID
此时我们在浏览器内输入
即可访问程序
然后我们可以再启动一个
docker run --name=ares.hellodocker-2 -p 50002:80 -d ares.hellodocker
访问web 50002端口
nginx 负载均衡
upstream ares.server1 {
server localhost:50001 weight=1;
server localhost:50002 weight=1;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://ares.server1;
}
}
效果
这个会根据权重,随机打到某一个端口