当前位置:   article > 正文

在 CentOS 7 上安装 Docker 并安装和部署 .NET Core 3.1_centos7安装docker

centos7安装docker
1. 安装 Docker

步骤 1.1:更新包索引并安装依赖包

安装yum的扩展,yum-utils提供了一些额外的工具,这些工具可以执行比基本yum命令更复杂的任务

sudo yum install -y yum-utils
  1. sudo yum update -y #更新系统上已安装的所有软件包到最新版本
  2. #这条命令用于安装yum-utils、device-mapper-persistent-data和lvm2这三个软件包。
  3. sudo yum install -y yum-utils device-mapper-persistent-data lvm2

步骤 1.2:添加 Docker 官方仓库

用于添加Docker CE(Community Edition,社区版)的软件仓库到系统的yum配置中。这意味着你可以通过yum(或其前端如dnf在CentOS 8及更高版本中)来安装、更新和管理Docker CE软件包。

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

 

  1. 使用yum-config-manager:这是yum-utils包中的一个工具,用于管理yum的仓库配置。它允许你添加、禁用或启用仓库,而无需直接编辑仓库配置文件(通常位于/etc/yum.repos.d/目录下)。

  2. 添加Docker CE仓库:通过指定--add-repo选项和Docker CE的仓库URL(在这个例子中是https://download.docker.com/linux/centos/docker-ce.repo

  3. 仓库URLhttps://download.docker.com/linux/centos/docker-ce.repo是一个指向Docker CE仓库配置文件的URL。当你执行这个命令时,yum-config-manager会从该URL下载仓库配置文件,并将其保存到你的/etc/yum.repos.d/目录下。

步骤 1.3:安装 Docker CE

  1. sudo yum install -y docker-ce docker-ce-cli containerd.io

Docker CE提供了完整的容器化平台,包括Docker引擎、CLI(命令行界面)工具、容器运行时组件(如containerd.io)等,支持构建、发布和运行容器化应用。

4. 手动下载 Docker 仓库文件(如果上面代码报错)

手动下载 Docker 仓库文件并将其放入正确的位置:

  1. sudo curl -L https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo

步骤 1.4:启动 Docker 并设置开机自启动

  1. sudo systemctl start docker
  2. sudo systemctl enable docker

步骤 1.5:验证 Docker 安装

sudo docker -v

 步骤 2.1:发布.net core3.1项目(windows)

在解决方案、找到项目目录

选择发布到文件夹

点击打开文件夹 ,默认发布到项目文件的bin 下面的Release\netcoreapp3.1\publish中是编译后的项目文件

3. 创建 Dockerfile

步骤 3.1:创建项目目录并进入目录

  1. mkdir dotnetapp
  2. cd dotnetapp

将编译后的项目放到linux目录中

 

步骤 3.2:创建 Dockerfile

1. 创建或更新 Dockerfile

在包含 netcoreapp3.1 文件夹的目录下创建或更新 Dockerfile:

使用 cat 命令创建 Dockerfile 并添加以下内容:

  1. cd /www/wwwroot/donetapp/NewsWebsite
  2. sudo bash -c 'cat > Dockerfile <<EOF
  3. # 使用官方的 ASP.NET Core 运行时作为基础镜像
  4. FROM mcr.microsoft.com/dotnet/aspnet:3.1 AS base
  5. WORKDIR /app
  6. EXPOSE 80
  7. # 将发布的文件复制到基础镜像中
  8. COPY netcoreapp3.1/ .
  9. ENTRYPOINT ["dotnet", "NewsWebsite.dll"]
  10. EOF'

模版:

  1. # 使用官方的 ASP.NET Core 运行时作为基础镜像
  2. FROM mcr.microsoft.com/dotnet/aspnet:3.1 AS base
  3. WORKDIR /app
  4. EXPOSE 80
  5. # 将发布的文件复制到基础镜像中
  6. COPY . .
  7. ENTRYPOINT ["dotnet", "YourAppName.dll"]

 

需要修改的地方

  1. 项目路径

    • 确保在正确的目录中执行 Docker 构建命令。该目录应该包含发布后的应用程序文件。
  2. DLL 文件名称

    • YourAppName.dll 修改为您的 .NET Core 应用程序的实际 DLL 文件名。

4.构建和运行 Docker 镜像

步骤 4.1:创建项目目录并进入目录

  1. 确保在正确的目录中
cd /root/dotnetapp/NewsWebsite
  1. 构建 Docker 镜像
sudo docker build -t newswebsiteapp .

 newswebsiteapp是项目名,这个自定义

  1. 运行 Docker 容器
sudo docker run -d -p 8080:80 newswebsiteapp

这条命令的作用是以分离模式(在后台)启动一个名为newswebsiteapp的容器实例,将容器内的80端口映射到宿服务器主机的8080端口上,以便可以通过宿主机的8080端口访问容器内的Web服务。 (记得开启8080端口)

5. 管理 Docker 容器

你可以使用以下命令来管理 Docker 容器:

  • 查看运行的容器:

    sudo docker ps

  • 停止一个容器:

​​​​​​​sudo docker stop <container_id>
  • 删除一个容器:

    sudo docker rm <container_id>

开启端口:

在 CentOS 7 中打开防火墙上的端口 5000 以允许外部访问,可以使用 firewalld 工具。以下是详细步骤:

1. 检查 firewalld 状态

首先,检查 firewalld 是否正在运行:

sudo systemctl status firewalld

如果 firewalld 没有运行,可以启动它:

sudo systemctl start firewalld

2. 开放端口 5000为例

使用以下命令在 firewalld 中开放端口 5000:

 
sudo firewall-cmd --zone=public --add-port=5000/tcp --permanent

解释:

  • --zone=public:指定要修改的区域(通常是 public 区域)。
  • --add-port=5000/tcp:添加 TCP 端口 5000。
  • --permanent:永久添加规则。

3. 重新加载 firewalld

应用更改并重新加载 firewalld 配置:

sudo firewall-cmd --reload

4. 验证端口是否开放

使用以下命令验证端口是否成功开放:

sudo firewall-cmd --zone=public --list-ports

确保输出中包含 5000/tcp

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/877244
推荐阅读
相关标签
  

闽ICP备14008679号