webapi通过docker部署到Linux的两种方式
docker
安装官网
-
删除docker
sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
-
安装
sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
-
查看是否安装成功
sudo systemctl start docker sudo docker run hello-world
-
查看docker状态
systemctl status docker
-
设置开机自启
sudo systemctl enable docker
-
禁止开机自启
sudo systemctl disable docker
二、创建镜像容器(镜像可以理解成类,容器可以理解成类的实例化)
-
源代码创建
-
创建WebApi项目
-
选择将 解决方案 和 **项目 ** 放到同一个目录下,点击下一步
-
选择启用Docker,点击创建
-
将源文件直接复制到服务器,然后进入 进入到解决方案目录下开始创建镜像
-
创建镜像
例子:docker -t 名称:版本号 . docker -t dockerapi:1.0.0 .
-
启动容器
例子:docker run --name 名称 -itd --restart unless-stopped -p 外部访问端口:项目启动端口 启动镜像 docker run --name docker1.0.0 -it --restart unless-stopped -p 8888:8080 dockerapi:1.0.0
-
浏览器访问
服务器ip:8888/swagger/weatherforecast
-
-
发布之后文件创建
-
创建好webapi项目
-
修改配置文件,配置端口(appsettings.json)
{ "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } }, "AllowedHosts": "*", "Kestrel": { "Endpoints": { "Http": {"Url": "http://*:8060"} } } }
-
点击发布
-
进入发布后的文件夹
-
创建dockerfile配置文件,将下边内容复制到文件中,并修改配置(Dockerfile)
#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging. FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base USER app WORKDIR /app #端口 EXPOSE 8060 FROM base AS final WORKDIR /app COPY . /app #启动命令(括号中为启动的项目名称) ENTRYPOINT ["./LinuxApi"]
-
将发布后的文件上传到服务器
-
创建镜像
例子:docker -t 名称:版本号 . docker -t linuxapi:1.0.0 .
-
创建容器
例子:docker run --name 名称 -itd --restart unless-stopped -p 外部访问端口:项目启动端口 启动镜像 docker run --name linuxapi1.0.0 -it --restart unless-stopped -p 7777:8060 linuxapi:1.0.0
-
浏览器访问
服务器ip:7777/swagger/weatherforecas
-
三、其他命令
-
镜像
-
创建
例子:docker -t 名称:版本号 . docker -t linuxapi:1.0.0 .
-
删除
例子:docker rmi 名称:版本号 docker rmi linuxapi:1.0.0
-
-
容器
-
创建
例子:docker run --name 名称 -itd --restart 重启规则 -p 外部访问端口:项目启动端口 启动镜像 docker run --name linuxapi1.0.0 -it --restart unless-stopped -p 7777:8060 linuxapi:1.0.0
-
启动和停止
docker start linuxapi1.0.0 docker stop linuxapi1.0.0
-
查看容器
运行中 docker ps 全部 docker ps -a
-
删除
例子:docker remove 容器id或者容器名称 docker remove linuxapi1.0.0
-
修改容器 启动规则(服务挂了之后是否重启)
docker update --restart=always [container_name_or_id] 1. `no`: 容器不会在Docker守护进程启动时自动启动(默认)。 2. `on-failure`: 容器只有在非正常退出时(退出状态非0)才会重启。 3. `always`: 无论退出状态如何,容器总是重新启动。 4. `unless-stopped`: 在容器退出时,如果容器是由Docker守护进程停止的,就不会重新启动。 docker update --restart=always linuxapi1.0.0
-
本文来自博客园,作者:潜龙-勿用,转载请注明原文链接:https://www.cnblogs.com/cyfjjf/p/18081688