因为docker-desktop是商用软件,这里可以采用开源的方案来替代一下docker,经过多方比较选择了colima进行docker使用
安装docker docker-compose colima
1
brew install docker docker-compose colima
启动colima(重点来了)
科学版(百度:让终端使用代理,麻烦的话推荐往下看)
不会终端科学版
这一步在大部分同学基本都会失败,因为要下载镜像,失败的日志如下
1
INFO[ 0000] starting colimaINFO[ 0000] runtime: docker INFO[ 0002] creating and starting ... context = vm INFO[ 0002] downloading disk image ... context = vm FATA[ 0077] error starting vm: error at 'creating and starting' : error getting qcow image: error during image download: error downloading 'https://github.com/abiosoft/colima-core/releases/download/v0.8.1/ubuntu-24.04-minimal-cloudimg-arm64-docker.qcow2' : error retrieving redirect url: error running [ curl -ILs -o /dev/null -w %{ url_effective} https://github.com/abiosoft/colima-core/releases/download/v0.8.1/ubuntu-24.04-minimal-cloudimg-arm64-docker.qcow2] , output: "" , err: "exit status 28"
所以大家可以去下载镜像,然后放到指定目录下,然后启动colima
镜像地址:ubuntu-24.04
下载完之后,我们用命令启动一下colima
1
colima start --disk-image /Users/admin/Downloads/ubuntu-24.04-minimal-cloudimg-arm64-docker.qcow2
4. 设置后台自启动
1
brew services start colima
5. 接下来就可以操作docker了
6. 注意这里如果运行 docker-compose 的情况时需要使用 9p 来进行启动
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
### 1. Stop colima and create `override.yaml` file
> 🧨 To start from scratch I deleted all colima profiles first:
>
> ``` shell
> ➜ colima list | awk "/ $( uname -m) / {print \$1}" | while read i ; do colima stop -p ${ i } ; colima delete -p ${ i } ; done
> ```
``` shell
➜ colima stop
➜ [ -d " ${ HOME } /.colima/_config" ] || mkdir -vp " ${ HOME } /.colima/_config"
➜ cat << EOF > ${HOME}/.colima/_config/override.yaml
mountType: 9p
mounts:
- location: ${HOME}
writable: true
9p:
securityModel: mapped-xattr
cache: mmap
- location: "~"
writable: true
9p:
securityModel: mapped-xattr
cache: mmap
- location: /tmp/colima
writable: true
9p:
securityModel: mapped-xattr
cache: mmap
EOF
2. Edit the template
⚠️ Make sure you have: mountType: 9p
3. Then start colima editing the configuration file before start:
⚠️ Make sure you have: mountType: 9p
Tried your docker-compose.yaml example:
1
2
3
4
5
6
7
8
9
10
version : '3'
services :
database :
image : postgres:15.4-alpine
volumes :
- ./data/database:/var/lib/postgresql/data
environment :
POSTGRES_USER : 'directus'
POSTGRES_PASSWORD : 'directus'
POSTGRES_DB : 'directus'
1
2
3
4
5
➜ ls -lao
total 8
drwxr-xr-x 3 user 96 Nov 15 08:54 ./
drwxr-xr-x 23 user 736 Nov 15 08:53 ../
-rw-r--r-- 1 user 244 Nov 15 08:49 docker-compose.yaml
1
2
3
4
5
➜ docker compose up -d
[+] Building 0.0s (0/0) docker:colima
[+] Running 2/2
✔ Network colima_default Created 0.1s
✔ Container colima-database-1 Started 0.0s
1
2
3
4
5
6
➜ ls -lao
total 8
drwxr-xr-x 4 user 128 Nov 15 08:54 ./
drwxr-xr-x 23 user 736 Nov 15 08:53 ../
drwx------@ 3 user 96 Nov 15 08:54 data/
-rw-r--r-- 1 user 244 Nov 15 08:49 docker-compose.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
➜ tree -d data
data
└── database
├── base
│ ├── 1
│ ├── 16384
│ ├── 4
│ └── 5
├── global
├── pg_commit_ts
├── pg_dynshmem
├── pg_logical
│ ├── mappings
│ └── snapshots
├── pg_multixact
│ ├── members
│ └── offsets
├── pg_notify
├── pg_replslot
├── pg_serial
├── pg_snapshots
├── pg_stat
├── pg_stat_tmp
├── pg_subtrans
├── pg_tblspc
├── pg_twophase
├── pg_wal
│ └── archive_status
└── pg_xact
28 directories
1
2
3
4
5
6
7
8
9
10
11
➜ docker exec -it colima-database-1 psql -U directus -c '\l'
List of databases
Name | Owner | Encoding | Collate | Ctype | ICU Locale | Locale Provider | Access privileges
-----------+----------+----------+------------+------------+------------+-----------------+-----------------------
directus | directus | UTF8 | en_US.utf8 | en_US.utf8 | | libc |
postgres | directus | UTF8 | en_US.utf8 | en_US.utf8 | | libc |
template0 | directus | UTF8 | en_US.utf8 | en_US.utf8 | | libc | =c/directus +
| | | | | | | directus=CTc/directus
template1 | directus | UTF8 | en_US.utf8 | en_US.utf8 | | libc | =c/directus +
| | | | | | | directus=CTc/directus
(4 rows)
1
2
3
4
对应 issue 是这个 https : //github.com/abiosoft/colima/issues/83
因为这里启动的服务报错, permission If I attempt this with colima I get ` chown : file . txt : Permission denied `
👍13
Licensed under CC BY-NC-SA 4.0
最后更新于 Apr 11, 2025 07:19 UTC