11、docker

1、官网

https://www.docker.com/

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

此时我们在浏览器内输入

http://192.168.137.131:50001/ 

即可访问程序

然后我们可以再启动一个

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;
  }
}

效果

这个会根据权重,随机打到某一个端口

原文地址:https://www.cnblogs.com/ares-core/p/13044127.html