openEuler 24(LTS)怎样安装Docker和Nginx容器搭建Web网站【避坑】

以下是基于 openEuler 系统从零搭建 Web 服务器的完整流程,包含 Docker 安装和 Nginx 服务器配置华为仓库,适合零基础用户操作。分为两个核心部分:

一、openEuler 安装 Docker

官方推荐(不建议)
1.1.1 更新dnf系统软件包仓库
do dnf update -y 

1.1.2 安装 Docker openEuler 官方推荐通过 dnf 直接安装:

 do dnf install docker -y


1.1.3 配置与启动 Docker

#启动Docker服务
sudo systemctl start docker
#设置开机自启
do systemctl enable docker
#验证安装
sudo docker --version

   ✅ 成功标志:显示 Docker 版本号(如 `Docker version 24.0.7`)。
​安装成功直接看 二、Nginx容器安装

1.2.1【可选】安装最新版Docker(建议)

(一)、先增加docker官方仓库:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

✅输出结果 

[root@apisql ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
 
添加仓库自:https://download.docker.com/linux/centos/docker-ce.repo
[root@apisql ~]# 

(二)、修改配置文件

2.1进入目录

#进入目录

cd /etc/yum.repos.d/

✅输出结果

[root@apisql ~]# cd /etc/yum.repos.d/
[root@apisql yum.repos.d] ll -l
总用量 8
-rw-r--r--. 1 root root 1919  6月 14 15:13 docker-ce.repo
-rw-r--r--. 1 root root 1957 12月 27 22:25 openEuler.repo
[root@apisql yum.repos.d]# vi docker-ce.repo

2.2 为什么要替换 $releasever

openEuler 版本推荐替换值 兼容依据
20.03 / 22.03 LTS系列 7 兼容 CentOS 7.9(官方文档确认)
24.03 LTS 及以后8 或 stream8基于 RHEL 8 生态,兼容 CentOS Stream 8

将第3行baseurl中 $releasever 换为 8示例如下

[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://download.docker.com/linux/centos/7/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://download.docker.com/linux/centos/gpg

或者,也可以批量查询替换

:1,$s/\$releasever/8/g

其中,:1,$ 表示从第一行到最后一行,s 表示替换操作,\$releasever 表示要被替换的字符串,7 表示替换后的字符串,/g 全局

2.3、安装指定版本

先查询一下(可选)

yum list docker-ce --showduplicates|sort -r

✅示例安装的版本

[root@apisql yum.repos.d]# yum list docker-ce --showduplicates|sort -r
docker-ce.x86_64            3:24.0.2-1.el7                      docker-ce-stable
docker-ce.x86_64            3:24.0.1-1.el7                      docker-ce-stable
docker-ce.x86_64            3:24.0.0-1.el7                      docker-ce-stable
docker-ce.x86_64            3:23.0.6-1.el7                      docker-ce-stable
……
……
Docker CE Stable - x86_64                        40 kB/s |  60 kB     00:01
Available Packages
[root@apisql yum.repos.d]#

安装指定版本,安装命令如下,随时间推移,大家看到更新的版本,推荐安装新版本

yum -y install docker-ce-24.0.2

二、Nginx容器安装

宿主机 (openEuler)

├─── 📦 用 DNF 安装软件 (dnf install)
│     │
│     └── 从 hub.oepkgs.net 下载 RPM 包

└─── 🐳 用 Docker 运行容器✅
      │
      └── 从 docker.io/openeuler/openeuler 拉取基础镜像

用 DNF 安装软件 (dnf install)

sudo dnf install nginx -y          # 安装
sudo systemctl start nginx         # 启动服务
sudo systemctl enable nginx        # 设置开机自启
 

 2.1.1 使用 Docker 运行容器,部署 Nginx Web 服务器


直接拉取 Nginx 镜像

sudo docker pull nginx:latest
​安装成功直接看 三、启动容器部署网站
2.2.1【可选】🛠️ Docker 拉取镜像失败解决方案:Unable to find image 'nginx:latest' locally 问题详解
(一)Docker镜像加速器配置
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://hub-mirror.c.163.com"]
}
EOF

附:1配置文件注意事项

确保JSON格式正确,特别是引号和逗号的使用

如果使用多个镜像源,应按稳定性排序,例如:

{
  "registry-mirrors": [
    "https://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn",
    "https://mirror.baidubce.com"
  ]
}
(二)测试镜像源连通性
curl -v https://hub-mirror.c.163.com/v2/

 (三).拉取镜像
docker pull nginx:latest

🛠️ Docker 拉取镜像失败解决方案:Unable to find image 'nginx:latest' locally 问题详解

附 server can't find docker.mirrors.ustc.edu.cn: NXDOMAIN原因

你的系统当前使用的 DNS 服务器无法解析 docker.mirrors.ustc.edu.cn 这个域名。

📌 :若网易镜像源不稳定,可替换为华为云 "https://swr.cn-south-1.myhuaweicloud.com"

2.3.1【可选】配置华为云SWR镜像仓库
# 配置华为云SWR
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://hub-mirror.c.163.com"],
  "insecure-registries": ["swr.cn-south-1.myhuaweicloud.com"]
}
EOF

# 登录华为云获取SWR访问权限
docker login swr.cn-south-1.myhuaweicloud.com

# 拉取镜像
docker pull swr.cn-south-1.myhuaweicloud.com/open_euler/openeuler:24.03-lts
重启Docker
sudo systemctl restart docker
使用 docker ps 命令检查镜像
docker ps -a  # 查看所有容器(包括运行中和已停止的)

输出示例

CONTAINER ID   IMAGE         COMMAND                  CREATED        STATUS        PORTS     NAMES
a1b2c3d4e5f6   nginx:latest  "/docker-entrypoint…"   2 hours ago    Up 2 hours    80/tcp    web-server
华为云拉取
docker pull swr.cn-south-1.myhuaweicloud.com/library/nginx:latest

三、启动容器部署网站

3.1启动容器

sudo docker run -d \
  --name my_nginx \
  -p 8080:80 \
  nginx:latest
【可选】华为镜像启动
docker run -d --name my_nginx -p 8080:80 \
swr.cn-south-1.myhuaweicloud.com/library/nginx:latest
  1. -d:后台运行容器
  2. --name my_nginx:自定义容器名称
  3. -p 8080:80:端口映射(宿主机端口:容器端口)

验证运行状态

docker ps | grep my_nginx  # 查看容器是否显示"Up"
3.2访问Nginx服务

浏览器访问 http://<服务器IP>:8080,显示Nginx欢迎页即成功。

【可选】
本地部署网站目录及测试页面
docker run -d --name my_nginx \
-p 8080:80 \
-v /宿主机/nginx.conf:/etc/nginx/nginx.conf \
-v /宿主机/html:/usr/share/nginx/html \
swr.cn-south-1.myhuaweicloud.com/library/nginx:latest

例如

mkdir -p ~/web-server/html
echo "<h1>Welcome to openEuler Web Server!</h1>" > ~/web-server/html/index.html
  • 参数说明
    -p 8081:80:将容器 8081 端口映射到主机 80 端口
    -v ...:挂载本地网页目录到容器
docker run -d --name my_nginx \
-p 8081:80 \
-v ~/web-server/html:/usr/share/nginx/html \
 swr.cn-south-1.myhuaweicloud.com/library/nginx:latest

浏览器访问 http://服务器 IP 地址:8081


⚠️ 常见问题处理

未启用容器

输出 hare/nginx/html nginxInable to find image 'nginx:latest' locally

docker ps -a  # 查看所有容器(包括运行中和已停止的)

网络问题

验证 DNS 与网络(针对连接问题)

# 测试基础网络连通性
ping -c 4 www.baidu.com

# 测试 Docker Hub 域名解析
nslookup registry-1.docker.io

# 测试镜像源连通性
curl -v https://hub-mirror.c.163.com/v2/

防火墙配置(可选)若系统防火墙启用,需开放 80 端口:

sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --reload
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值