Kylin-Linux10-Docker安装

一、下载Docker安装文件 原文链接:https://blog.csdn.net/linmengmeng_1314/article/details/135653694

  1. 查看系统版本 [root@qmjs-1 opt]# cat /etc/os-release NAME="Kylin Linux Advanced Server" VERSION="V10 (Lance)" ID="kylin" VERSION_ID="V10" PRETTY_NAME="Kylin Linux Advanced Server V10 (Lance)" ANSI_COLOR="0;31"

  2. 查看 Linux 内核版本(3.10以上) [root@qmjs-1 opt]# uname -r 4.19.90-52.48.v2207.ky10.aarch64 [root@qmjs-1 opt]# uname -a Linux qmjs-1 4.19.90-52.48.v2207.ky10.aarch64 #4 SMP Tue Jun 3 12:56:10 CST 2025 aarch64 aarch64 aarch64 GNU/Linux

  3. 查看 iptabls 版本(1.4以上) [root@qmjs-1 opt]# iptables --version iptables v1.8.5 (legacy)

  4. 判断处理器架构 [root@qmjs-1 opt]# uname -p aarch64

  5. 离线下载 Docker 安装包 docker安装包下载目录,选择一个即可: 阿里镜像 http://mirrors.aliyun.com/docker-ce/linux/static/stable 官方下载 https://download.docker.com

https://download.docker.com/linux/static/stable/ https://download.docker.com/linux/static/stable/aarch64/docker-20.10.6.tgz 点进去,选择想要安装的版本,我这里为了跟测试环境保持一致,下载了一个相对旧点的版本:docker-20.10.6.tgz 下载完成后,上传至服务器 /opt 目录下, [root@qmjs-1 opt]# rz 然后解压:docker-20.10.6.tgz [root@qmjs-1 opt]# tar -zxvf docker-20.10.6.tgz docker/ docker/docker-init docker/dockerd docker/containerd docker/docker docker/containerd-shim-runc-v2 docker/ctr docker/containerd-shim docker/docker-proxy docker/runc [root@qmjs-1 opt]# cd docker/ [root@qmjs-1 docker]# ll total 218048 -rwxr-xr-x 1 admin admin 37116392 Apr 10 2021 containerd -rwxr-xr-x 1 admin admin 6946816 Apr 10 2021 containerd-shim -rwxr-xr-x 1 admin admin 9502720 Apr 10 2021 containerd-shim-runc-v2 -rwxr-xr-x 1 admin admin 20050888 Apr 10 2021 ctr -rwxr-xr-x 1 admin admin 57237920 Apr 10 2021 docker -rwxr-xr-x 1 admin admin 75527296 Apr 10 2021 dockerd -rwxr-xr-x 1 admin admin 505488 Apr 10 2021 docker-init -rwxr-xr-x 1 admin admin 2939501 Apr 10 2021 docker-proxy -rwxr-xr-x 1 admin admin 13437040 Apr 10 2021 runc

  1. 移动解压出来的二进制文件到 /usr/bin 目录中 [root@qmjs-1 opt]# mv docker/* /usr/bin/

然后就可以测试下Docker [root@qmjs-1 opt]# docker -v Docker version 20.10.6, build 370c289 [root@qmjs-1 opt]# docker version Client: Version: 20.10.6 API version: 1.41 Go version: go1.13.15 Git commit: 370c289 Built: Fri Apr 9 22:42:28 2021 OS/Arch: linux/arm64 Context: default Experimental: true Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 此时Docker 还没启动,只是可以看到Docker 的版本信息了。

测试 Docker 手动启动: [root@qmjs-1 opt]# dockerd INFO[2026-06-29T09:58:23.345779194+08:00] Starting up
WARN[2026-06-29T09:58:23.371501442+08:00] could not change group /var/run/docker.sock to docker: group docker not found INFO[2026-06-29T09:58:23.374294541+08:00] libcontainerd: started new containerd process pid=4012978 INFO[2026-06-29T09:58:23.374358331+08:00] parsed scheme: "unix" module=grpc INFO[2026-06-29T09:58:23.374368281+08:00] scheme "unix" not registered, fallback to default scheme module=grpc INFO[2026-06-29T09:58:23.374398171+08:00] ccResolverWrapper: sending update to cc: {[{unix:///var/run/docker/containerd/containerd.sock 0 }] } module=grpc INFO[2026-06-29T09:58:23.374408282+08:00] ClientConn switching balancer to "pick_first" module=grpc INFO[2026-06-29T09:58:23.395574067+08:00] starting containerd revision=05f951a3781f4f2c1911b05e61c160e9c30eaa8e version=v1.4.4 INFO[2026-06-29T09:58:23.448060279+08:00] loading plugin "io.containerd.content.v1.content"... type=io.containerd.content.v1 INFO[2026-06-29T09:58:23.448519102+08:00] loading plugin "io.containerd.snapshotter.v1.aufs"... type=io.containerd.snapshotter.v1 INFO[2026-06-29T09:58:23.453019443+08:00] loading plugin "io.containerd.snapshotter.v1.btrfs"... type=io.containerd.snapshotter.v1 INFO[2026-06-29T09:58:23.453339415+08:00] skip loading plugin "io.containerd.snapshotter.v1.btrfs"... error="path /var/lib/docker/containerd/daemon/io.containerd.snapshotter.v1.btrfs (xfs) must be a btrfs filesystem to be used with the btrfs snapshotter: skip plugin" type=io.containerd.snapshotter.v1 INFO[2026-06-29T09:58:23.453370075+08:00] loading plugin "io.containerd.snapshotter.v1.devmapper"... type=io.containerd.snapshotter.v1 WARN[2026-06-29T09:58:23.453391335+08:00] failed to load plugin io.containerd.snapshotter.v1.devmapper error="devmapper not configured" INFO[2026-06-29T09:58:23.453403496+08:00] loading plugin "io.containerd.snapshotter.v1.native"... type=io.containerd.snapshotter.v1 INFO[2026-06-29T09:58:23.453461566+08:00] loading plugin "io.containerd.snapshotter.v1.overlayfs"... type=io.containerd.snapshotter.v1 INFO[2026-06-29T09:58:23.453579977+08:00] loading plugin "io.containerd.snapshotter.v1.zfs"... type=io.containerd.snapshotter.v1 INFO[2026-06-29T09:58:23.453773158+08:00] skip loading plugin "io.containerd.snapshotter.v1.zfs"... error="path /var/lib/docker/containerd/daemon/io.containerd.snapshotter.v1.zfs must be a zfs filesystem to be used with the zfs snapshotter: skip plugin" type=io.containerd.snapshotter.v1 INFO[2026-06-29T09:58:23.453795418+08:00] loading plugin "io.containerd.metadata.v1.bolt"... type=io.containerd.metadata.v1 WARN[2026-06-29T09:58:23.453833469+08:00] could not use snapshotter devmapper in metadata plugin error="devmapper not configured" INFO[2026-06-29T09:58:23.453845679+08:00] metadata content store policy set policy=shared INFO[2026-06-29T09:58:23.466326915+08:00] loading plugin "io.containerd.differ.v1.walking"... type=io.containerd.differ.v1 INFO[2026-06-29T09:58:23.466374885+08:00] loading plugin "io.containerd.gc.v1.scheduler"... type=io.containerd.gc.v1 INFO[2026-06-29T09:58:23.466413595+08:00] loading plugin "io.containerd.service.v1.introspection-service"... type=io.containerd.service.v1 INFO[2026-06-29T09:58:23.466456615+08:00] loading plugin "io.containerd.service.v1.containers-service"... type=io.containerd.service.v1 INFO[2026-06-29T09:58:23.466473386+08:00] loading plugin "io.containerd.service.v1.content-service"... type=io.containerd.service.v1 INFO[2026-06-29T09:58:23.466488406+08:00] loading plugin "io.containerd.service.v1.diff-service"... type=io.containerd.service.v1 INFO[2026-06-29T09:58:23.466505746+08:00] loading plugin "io.containerd.service.v1.images-service"... type=io.containerd.service.v1 INFO[2026-06-29T09:58:23.466521306+08:00] loading plugin "io.containerd.service.v1.leases-service"... type=io.containerd.service.v1 INFO[2026-06-29T09:58:23.466537486+08:00] loading plugin "io.containerd.service.v1.namespaces-service"... type=io.containerd.service.v1 INFO[2026-06-29T09:58:23.466551926+08:00] loading plugin "io.containerd.service.v1.snapshots-service"... type=io.containerd.service.v1 INFO[2026-06-29T09:58:23.466566616+08:00] loading plugin "io.containerd.runtime.v1.linux"... type=io.containerd.runtime.v1 INFO[2026-06-29T09:58:23.466749947+08:00] loading plugin "io.containerd.runtime.v2.task"... type=io.containerd.runtime.v2 INFO[2026-06-29T09:58:23.466898118+08:00] loading plugin "io.containerd.monitor.v1.cgroups"... type=io.containerd.monitor.v1 INFO[2026-06-29T09:58:23.467312641+08:00] loading plugin "io.containerd.service.v1.tasks-service"... type=io.containerd.service.v1 INFO[2026-06-29T09:58:23.467338932+08:00] loading plugin "io.containerd.internal.v1.restart"... type=io.containerd.internal.v1 INFO[2026-06-29T09:58:23.467381222+08:00] loading plugin "io.containerd.grpc.v1.containers"... type=io.containerd.grpc.v1 INFO[2026-06-29T09:58:23.467397972+08:00] loading plugin "io.containerd.grpc.v1.content"... type=io.containerd.grpc.v1 INFO[2026-06-29T09:58:23.467412502+08:00] loading plugin "io.containerd.grpc.v1.diff"... type=io.containerd.grpc.v1 INFO[2026-06-29T09:58:23.467426672+08:00] loading plugin "io.containerd.grpc.v1.events"... type=io.containerd.grpc.v1 INFO[2026-06-29T09:58:23.467443242+08:00] loading plugin "io.containerd.grpc.v1.healthcheck"... type=io.containerd.grpc.v1 INFO[2026-06-29T09:58:23.467458022+08:00] loading plugin "io.containerd.grpc.v1.images"... type=io.containerd.grpc.v1 INFO[2026-06-29T09:58:23.467472612+08:00] loading plugin "io.containerd.grpc.v1.leases"... type=io.containerd.grpc.v1 INFO[2026-06-29T09:58:23.467486463+08:00] loading plugin "io.containerd.grpc.v1.namespaces"... type=io.containerd.grpc.v1 INFO[2026-06-29T09:58:23.467500203+08:00] loading plugin "io.containerd.internal.v1.opt"... type=io.containerd.internal.v1 INFO[2026-06-29T09:58:23.467593863+08:00] loading plugin "io.containerd.grpc.v1.snapshots"... type=io.containerd.grpc.v1 INFO[2026-06-29T09:58:23.467613433+08:00] loading plugin "io.containerd.grpc.v1.tasks"... type=io.containerd.grpc.v1 INFO[2026-06-29T09:58:23.467633094+08:00] loading plugin "io.containerd.grpc.v1.version"... type=io.containerd.grpc.v1 INFO[2026-06-29T09:58:23.467647224+08:00] loading plugin "io.containerd.grpc.v1.introspection"... type=io.containerd.grpc.v1 INFO[2026-06-29T09:58:23.468500880+08:00] serving... address=/var/run/docker/containerd/containerd-debug.sock INFO[2026-06-29T09:58:23.468611920+08:00] serving... address=/var/run/docker/containerd/containerd.sock.ttrpc INFO[2026-06-29T09:58:23.468710561+08:00] serving... address=/var/run/docker/containerd/containerd.sock INFO[2026-06-29T09:58:23.468772701+08:00] containerd successfully booted in 0.074266s
INFO[2026-06-29T09:58:23.480056899+08:00] parsed scheme: "unix" module=grpc INFO[2026-06-29T09:58:23.480087559+08:00] scheme "unix" not registered, fallback to default scheme module=grpc INFO[2026-06-29T09:58:23.480108929+08:00] ccResolverWrapper: sending update to cc: {[{unix:///var/run/docker/containerd/containerd.sock 0 }] } module=grpc INFO[2026-06-29T09:58:23.480126080+08:00] ClientConn switching balancer to "pick_first" module=grpc INFO[2026-06-29T09:58:23.483228111+08:00] parsed scheme: "unix" module=grpc INFO[2026-06-29T09:58:23.483258311+08:00] scheme "unix" not registered, fallback to default scheme module=grpc INFO[2026-06-29T09:58:23.483278751+08:00] ccResolverWrapper: sending update to cc: {[{unix:///var/run/docker/containerd/containerd.sock 0 }] } module=grpc INFO[2026-06-29T09:58:23.483288601+08:00] ClientConn switching balancer to "pick_first" module=grpc INFO[2026-06-29T09:58:23.566211112+08:00] Loading containers: start.
INFO[2026-06-29T09:58:24.038874027+08:00] Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address INFO[2026-06-29T09:58:24.241228251+08:00] Loading containers: done.
INFO[2026-06-29T09:58:24.336836769+08:00] Docker daemon commit=8728dd2 graphdriver(s)=overlay2 version=20.10.6 INFO[2026-06-29T09:58:24.336942660+08:00] Daemon has completed initialization
INFO[2026-06-29T09:58:24.399211929+08:00] API listen on /var/run/docker.sock

可以看到 docker 可以正常启动,不过当前是在窗口中手动启动的,Ctrl + C,杀掉就好。 ^CINFO[2026-06-29T10:00:27.555983518+08:00] Processing signal 'interrupt'
INFO[2026-06-29T10:00:27.558260954+08:00] Daemon shutdown complete
INFO[2026-06-29T10:00:27.558323264+08:00] stopping event stream following graceful shutdown error="context canceled" module=libcontainerd namespace=moby INFO[2026-06-29T10:00:27.558381884+08:00] stopping healthcheck following graceful shutdown module=libcontainerd INFO[2026-06-29T10:00:27.558457445+08:00] stopping event stream following graceful shutdown error="context canceled" module=libcontainerd namespace=plugins.moby [root@qmjs-1 opt]#

  1. 配置 Docker 服务 7.1 编辑 docker 的系统服务文件 vi /usr/lib/systemd/system/docker.service

7.2 将下面的内容复制到刚创建的docker.service文件中 [Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network-online.target firewalld.service Wants=network-online.target [Service] Type=notify ExecStart=/usr/bin/dockerd ExecReload=/bin/kill -s HUP $MAINPID LimitNOFILE=infinity LimitNPROC=infinity TimeoutStartSec=0 Delegate=yes KillMode=process Restart=on-failure StartLimitBurst=3 StartLimitInterval=60s [Install] WantedBy=multi-user.target 7.3 为docker.service添加执行权限 [root@qmjs-1 opt]# chmod +x /usr/lib/systemd/system/docker.service

7.4 编辑daemon.json [root@qmjs-1 opt]# vim /etc/docker/daemon.json

并添加以下内容: { "registry-mirrors": ["https://registry.docker-cn.com"], "exec-opts": ["native.cgroupdriver=systemd"] } 保存后,执行: [root@qmjs-1 opt]# systemctl daemon-reload

7.5 启动 Docker [root@qmjs-1 opt]# systemctl start docker [root@qmjs-1 opt]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES [root@qmjs-1 opt]# docker -v Docker version 20.10.6, build 370c289 [root@qmjs-1 opt]# docker info Client: Context: default Debug Mode: false

Server: Containers: 0 Running: 0 Paused: 0 Stopped: 0 Images: 0 Server Version: 20.10.6 Storage Driver: overlay2 Backing Filesystem: xfs Supports d_type: true Native Overlay Diff: true userxattr: false Logging Driver: json-file Cgroup Driver: systemd Cgroup Version: 1 Plugins: Volume: local Network: bridge host ipvlan macvlan null overlay Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog Swarm: inactive Runtimes: io.containerd.runtime.v1.linux runc io.containerd.runc.v2 Default Runtime: runc Init Binary: docker-init containerd version: 05f951a3781f4f2c1911b05e61c160e9c30eaa8e runc version: init version: de40ad0 Security Options: seccomp Profile: default Kernel Version: 4.19.90-52.48.v2207.ky10.aarch64 Operating System: Kylin Linux Advanced Server V10 (Lance) OSType: linux Architecture: aarch64 CPUs: 2 Total Memory: 6.565GiB Name: qmjs-1 ID: O454:KWQT:3LQB:P2WG:CU4Z:XBLN:OXFK:N5SB:QG2C:LAH5:KYCH:YBEY Docker Root Dir: /var/lib/docker Debug Mode: false Registry: https://index.docker.io/v1/ Labels: Experimental: false Insecure Registries: 127.0.0.0/8 Registry Mirrors: https://registry.docker-cn.com/ Live Restore Enabled: false Product License: Community Engine

7.6 添加开机自动启动 systemctl enable docker [root@qmjs-1 opt]# systemctl enable docker Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.

  1. 安装 docker-compose docker-compose 概述:Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。使用前面介绍的Dockerfile我们很容易定义一个单独的应用容器。然而在日常开发工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况。例如要实现一个 Web 项目,除了 Web 服务容器本身,往往还需要再加上后端的数据库服务容器;再比如在分布式应用一般包含若干个服务,每个服务一般都会部署多个实例。如果每个服务都要手动启停,那么效率之低、维护量之大可想而知。这时候就需要一个工具能够管理一组相关联的的应用容器,这就是Docker Compose。

Compose重要的概念: 项目(Project):由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义。 服务(Service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。 docker compose运行目录下的所有yml文件组成一个工程,一个工程包含多个服务,每个服务中定义了容器运行的镜像、参数、依赖。一个服务可包括多个容器实例。docker-compose就是docker容器的编排工具,主要就是解决相互有依赖关系的多个容器的管理。

下载最新版的docker-compose文件: 官方文档地址:https://docs.docker.com/compose/install/ 从github上下载docker-compose二进制文件安装 直接 GitHub 下载:docker/compose 选择自己喜欢的版本,这里直接拉满,下载当前最新的版本:v2.24.0 https://github.com/docker/compose/releases/download/v2.24.0/docker-compose-linux-aarch64

移至目录/usr/bin/docker-compose [root@qmjs-1 opt]# cp docker-compose-linux-aarch64 /usr/bin/docker-compose [root@qmjs-1 opt]# chmod +x /usr/bin/docker-compose

查看版本 [root@qmjs-1 opt]# docker-compose -v Docker Compose version v2.24.0

三、使用docker [root@qmjs-1 ~]# docker pull java:8 Error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io on 172.26.8.20:53: server misbehaving 查看daemon.json [root@qmjs-1 ~]# cat /etc/docker/daemon.json { "registry-mirrors": ["https://registry.docker-cn.com"], "exec-opts": ["native.cgroupdriver=systemd"] } https://registry.docker-cn.com 替换为实际的阿里云或其他镜像源地址。 编辑daemon.json [root@qmjs-1 opt]# vim /etc/docker/daemon.json

修改内容: { "registry-mirrors": ["https://index.docker.io/v1/"], "exec-opts": ["native.cgroupdriver=systemd"] } 保存后,执行: [root@qmjs-1 opt]# systemctl daemon-reload

0
0
0
0
评论
未登录
暂无评论