鲲鹏服务器安装Docker Compose

发布于:2025-08-29 ⋅ 阅读:(14) ⋅ 点赞:(0)

环境

鲲鹏服务器,安装中标麒麟操作系统

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>

网站公告

今日签到

点亮在社区的每一天
去签到