环境
鲲鹏服务器,安装中标麒麟操作系统
cat /etc/kylin-release
Kylin Linux Advanced Server release V10 (Tercel)
Docker版本信息
docker -v
Docker version 18.09.0, build 62eb848
安装Docker Compose
1、获取安装文件
由于是离线安装,需要先从有互联网连接的环境下载 ARM架构(aarch64) 的 docker-compose二进制包。访问 Docker Compose 在 GitHub 的官方发布页面 https://github.com/docker/compose/releases,根据需求选择合适的版本,这里选择2.1.1。
2、移动二进制文件
将上传的 docker-compose二进制文件移动到系统的可执行文件路径下,例如 /usr/local/bin或 /usr/bin。通常推荐使用 /usr/local/bin。
cp /path/to/your/docker-compose-linux-aarch64 /usr/local/bin/docker-compose
3、赋予执行权限,为二进制文件添加可执行权限。
chmod +x /usr/local/bin/docker-compose
4、验证安装,运行docker-compose --version命令检查安装是否成功,可正确显示版本信息表示已经安装成功。
docker-compose --version
Docker Compose version v2.1.1
注意事项
架构匹配:确保下载的 docker-compose二进制文件是 aarch64 架构版本。x86_64 版本在鲲鹏ARM服务器上无法运行。
权限问题:如果操作时提示权限不足,请记得使用 sudo命令。
Docker 引擎依赖:docker-compose工具的正常运行依赖于 Docker 引擎。请确保服务器上已经成功安装并运行了 Docker。如果 Docker 也是离线安装的,同样需要确认其架构匹配(aarch64)且功能正常。
安装路径:如果将 docker-compose安装到了 /usr/local/bin之外的其他路径,需要确保该路径已包含在系统的 PATH环境变量中,否则系统会找不到 docker-compose命令。
安装Nginx
1、导入镜像nginx-1.27.3-arm64v8.tar
2、创建必要的目录
mkdir -p /data/public/nginx/conf
mkdir -p /data/public/nginx/conf/conf.d
mkdir -p /data/public/nginx/html
mkdir -p /data/public/nginx/logs
3、创建Nginx配置文件
[root@test nginx]# cat conf/nginx.conf
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
include /etc/nginx/conf.d/*.conf; # 包含conf.d目录下的其他配置
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
# 可在此处添加全局的HTTP配置,如日志格式、反向代理等
# 一个简单的server块示例,也可移至conf.d/目录下单独的文件
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ =404;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
}
[root@test nginx]#
4、创建测试页面,在 /data/public/nginx/html目录下创建一个简单的 index.html文件用于测试。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Nginx on ARM64 (Kylin V10)</title>
</head>
<body>
<h1>Hello from Nginx 1.27.3 running on ARM64 (Kunpeng)!</h1>
<p>This is a test page served from Docker Compose.</p>
</body>
</html>
5、创建 docker-compose.yml 文件
在 /data/public/nginx/目录下创建 docker-compose.yml文件。
[root@test nginx]# cat docker-compose.yml
version: '3.8'
services:
nginx:
image: arm64v8/nginx:1.27.3
container_name: nginx
restart: unless-stopped
ports:
- "80:80"
volumes:
- /data/public/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
- /data/public/nginx/conf/conf.d/:/etc/nginx/conf.d/
- /data/public/nginx/html/:/usr/share/nginx/html
- /data/public/nginx/logs/:/var/log/nginx
environment:
- TZ=Asia/Shanghai
privileged: false
6、启动Nginx容器,确保当前位于 docker-compose.yml所在的目录 (/data/public/nginx),然后运行:
# 以后台模式拉取镜像并启动容器
docker-compose up -d
7、验证安装与访问,使用docker-compose ps或使用docker ps
[root@test nginx]# docker-compose ps
NAME COMMAND SERVICE STATUS PORTS
nginx "/docker-entrypoint.…" nginx running 0.0.0.0:80->80/tcp
[root@test nginx]#
[root@test nginx]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f7f7b9c3738f arm64v8/nginx:1.27.3 "/docker-entrypoint.…" About an hour ago Up About an hour 0.0.0.0:80->80/tcp nginx
8、如果修改了配置,需要重新加载配置使其生效而无需重启容器,执行如下命令
# 注意前一个nginx为容器名称,后一个nginx为容器中的nginx命令
docker exec nginx nginx -s reload
9、如果本地访问出现403错误,如下所示
[root@test nginx]# curl http://localhost/index.html
<html>
<head><title>404 Not Found</title></head>
<body>
<center><h1>404 Not Found</h1></center>
<hr><center>nginx/1.27.3</center>
</body>
</html>
检查日志可以看到是权限不足
[root@test nginx]# cat logs/error.log
2025/08/27 11:34:59 [error] 13#13: *1 "/usr/share/nginx/html/index.html" is forbidden (13: Permission denied), client: 172.18.0.1, server: localhost, request: "GET / HTTP/1.1", host: "localhost"
2025/08/27 11:35:07 [error] 13#13: *2 "/usr/share/nginx/html/index.html" is forbidden (13: Permission denied), client: 172.18.0.1, server: localhost, request: "GET / HTTP/1.1", host: "localhost"
2025/08/27 11:35:09 [error] 13#13: *3 "/usr/share/nginx/html/index.html" is forbidden (13: Permission denied), client: 172.18.0.1, server: localhost, request: "GET / HTTP/1.1", host: "localhost"
对html目录执行chmod -R o+rx html命令即可,此时继续访问就正常了
curl http://localhost
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Nginx on ARM64 (Kylin V10)</title>
</head>
<body>
<h1>Hello from Nginx 1.27.3 running on ARM64 (Kunpeng)!</h1>
<p>This is a test page served from Docker Compose.</p>
</body>
</html>