取消社区源注释,并更新源,参考Alpine Linux更新源

安装docke和docker compose

apk add docker docker-compose

安装过程正常则如下

alpine:~# apk add docker docker-compose
(1/18) Installing ca-certificates (20230506-r0)
(2/18) Installing libseccomp (2.5.4-r2)
(3/18) Installing runc (1.1.7-r1)
(4/18) Installing containerd (1.7.2-r0)
(5/18) Installing containerd-openrc (1.7.2-r0)
(6/18) Installing libmnl (1.0.5-r1)
(7/18) Installing libnftnl (1.2.5-r1)
(8/18) Installing iptables (1.8.9-r2)
(9/18) Installing iptables-openrc (1.8.9-r2)
(10/18) Installing ip6tables (1.8.9-r2)
(11/18) Installing ip6tables-openrc (1.8.9-r2)
(12/18) Installing tini-static (0.19.0-r1)
(13/18) Installing docker-engine (23.0.6-r3)
(14/18) Installing docker-openrc (23.0.6-r3)
(15/18) Installing docker-cli (23.0.6-r3)
(16/18) Installing docker-cli-buildx (0.10.4-r5)
(17/18) Installing docker (23.0.6-r3)
Executing docker-23.0.6-r3.pre-install
(18/18) Installing docker-cli-compose (2.17.3-r3)
Executing busybox-1.36.1-r2.trigger
Executing ca-certificates-20230506-r0.trigger
OK: 381 MiB in 87 packages
alpine:~# 

修改镜像及容器保存位置(可选)

如果初始系统盘容量较小,又计划部署较多的docker镜像和容器时,可以提前修改docker的存储位置到额外添加的硬盘

添加额外硬盘到系统并挂载,参考添加硬盘空间

如果docker正在运行,则应先停止docker服务

rc-service docker stop

如果已经有镜像和容器了,则应复制原文件夹/var/lib/docker中的所有文件至新路径

官方文档的修改办法是编辑 /etc/docker/daemon.json 文件:

vi /etc/docker/daemon.json 

默认情况下这个配置文件是没有的,这里实际也就是新建一个,然后写入以下内容:

{
  "data-root": "/www/docker"
}

此文件还涉及默认源的设定,如果设定了国内源,那么实际就是在源地址下方加一行,写成:

{
  "registry-mirrors": ["http://hub-mirror.c.163.com"],
  "data-root": "/www/docker"
}

保存退出,然后重启 docker 服务:

rc-service docker start

再次查看 docker 信息,可以看到目录已经变成了设定的/www/docker:

加入引导启动

rc-update add docker boot

启动docker

rc-service docker start

查看docker运行状态

docker version

运行正常则如下

alpine:~# docker version
Client:
 Version:           23.0.6
 API version:       1.42
 Go version:        go1.20.5
 Git commit:        ef23cbc4315ae76c744e02d687c09548ede461bd
 Built:             Tue Jul  4 14:21:43 2023
 OS/Arch:           linux/amd64
 Context:           default

Server:
 Engine:
  Version:          23.0.6
  API version:      1.42 (minimum version 1.12)
  Go version:       go1.20.5
  Git commit:       9dbdbd4b6d7681bd18c897a6ba0376073c2a72ff
  Built:            Tue Jul  4 14:21:43 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.7.2
  GitCommit:        0cae528dd6cb557f7201036e9f43420650207b58
 runc:
  Version:          1.1.7
  GitCommit:        860f061b76bb4fc671f0f9e900f7d80ff93d4eb7
 docker-init:
  Version:          0.19.0
  GitCommit:        
alpine:~#