下载 .NET Core 3.1 SDK (v3.1.403) - Linux x64 Binaries
mkdir -p /usr/local/dotnet
tar zxf dotnet-sdk-3.1.403-linux-x64.tar.gz -C /usr/local/dotnet
#dotNet5
export DOTNET_ROOT=/usr/local/dotnet
export PATH=$PATH:/usr/local/dotnet
https://www.runoob.com/docker/centos-docker-install.html
链接: https://pan.baidu.com/s/1MDq3BkK0g2h1V1PiUu59Xg 提取码: bwx8
然后执行:
docker load < dotnet_core_aspnet.tar 他会得到一串ID
docker images #查看ID 就是上面的ID
docker tag [这里修改成:ID] mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim
例子:
#docker images #bdca989bc8d3bd57f876b7f1265933f222a7752cd7bfe4fdf969ed22d219f95c
#docker tag bdca989bc8d3bd57f876b7f1265933f222a7752cd7bfe4fdf969ed22d219f95c mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim
https://www.cnblogs.com/elsons/p/15343436.html
#环境运行时基础镜像
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
#将当前目录内容.copy到镜像目录
COPY . /publish
#设置工作目录
WORKDIR /publish
#对外暴漏端口
EXPOSE 80
#EXPOSE 443
#使用北京时间
#RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localting && echo'Asia/Shanghai' >/etc/timezone
#运行镜像入口命令和可执行文件名称
ENTRYPOINT ["dotnet", "Application.WebApi.dll"]
docker build -f Dockerfile -t webapi:1.0 .
docker images
docker run -it -p 8082:80 749be68ef806
# 镜像发布为容器
# --name 指定容器名称
# -d 指定容器后台运行
# -p 主机(宿主)端口:容器端口(容器端口映射到主机(宿主)端口 )
# webappdocker镜像名
docker run --name webapi -d -p 8082:80 webapi:1.0
docker run --restart=always --name webapi -p 8082:80 -v /home/config/webapi/appsettings.json:/root/publish/appsetting.json -d webapi:1.0
#失败后,先删再执行
#docker ps -a
#docker stop 8c03ff334716
#docker rm 1b47e4f0206e# 查看镜像
docker images
# 删除镜像
docker rmi [IMAGE_ID]
重新部署
1、输入docker ps -a
2、docker rm -f 【把步骤1的netcore的id 删掉】
3、docker images
4、docker rmi 【把步骤3得到的netcore的id删掉】
5、docker文件如下
#环境运行时基础镜像
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
#将当前目录内容.copy到镜像目录
COPY . /coreapi
#设置工作目录
WORKDIR /coreapi
#对外暴漏端口
EXPOSE 80
#运行镜像入口命令和可执行文件名称
ENTRYPOINT ["dotnet", "Application.WebApi.dll"]
6、cd /root/netcore/coreapi
7、docker build -f Dockerfile -t coreapi:1.0 .
8、测试项目正常不正常
8.1 docker images
8.2 docker run -it -p 8082:80 【8.1的id】
9、正式部署
docker run --name webapi -d -p 8081:80 coreapi:1.0
查看日志发现没有这个包
docker logs coreapi
然后下载包
Index of /sources/libgdiplushttps://download.mono-project.com/sources/libgdiplus/
1、cd /root/netcore/libgdiplus-6.0.5
2、权限 chmod +x configure
3、配置 ./configure --prefix=/root/netcore/libgdi
4、安装
make
make install
Docker对外暴露端口
iptables -t nat -A DOCKER -p tcp -dport 8082 -j DNAT --to-destination 172.17.0.25:8082
https://blog.csdn.net/weixin_45063703/article/details/118790061
--------------------------------
查看端口:netstat -lntp
--------------------------------
查询 netstat -anp 所有开放端口信息
关闭
iptables -A OUTPUT -p tcp --dport 端口号-j DROP
打开
iptables -A INPUT -ptcp --dport 8099 -j ACCEPT
https://blog.csdn.net/weixin_42227661/article/details/118695109
https://www.lxlinux.net/2490.html
查看当前防火墙开放的端口
firewall-cmd --list-all
查看指定端口是否开放命令
firewall-cmd --query-port=80/tcp
移除指定开放端口命令
firewall-cmd --remove-port=80/tcp
最后重新启动firewalld
firewall-cmd --reload
https://blog.csdn.net/qq_45152095/article/details/121985186
--------------------------------
Docker命令
# 查看所有容器运行状态
docker ps -a
docker ps --all
# 查看docker状态
systemctl status docker
# 重启docker
systemctl restart docker
# 删除容器
docker rm [CONTAINER_ID]
# 停用全部运行中的容器
docker stop $(docker ps -q)
# 删除所有容器(要先停用才能删除)
docker rm $(docker ps -aq)
# 查看镜像
docker images
# 删除镜像
docker rmi [IMAGE_ID]
# 删除所有镜像
docker rmi $(docker images -aq)
# 查看容器日志
docker logs -f [CONTAINER_ID]
# 容器内访问
docker exec -t webapp_v1 curl -L localhost/home/index
# 进入容器
docker exec -it [CONTAINER_ID] bash
# 查看容器所有状态信息
docker inspect [CONTAINER_ID]
# 查看容器ip地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' [CONTAINER_ID]