Docker 在 macOS 下的安装与 Gitea 部署经验总结
我在 macOS 上成功安装并运行了 Docker,并使用 Docker 搭建了 Gitea 作为 Git 代码管理服务器。以下是你的完整安装与调试过程,包括遇到的问题和解决方案。
1. Docker 安装
你首先尝试在 macOS 上安装 Docker,并使用 Homebrew 进行安装:
sh
brew install --cask docker
然后启动 Docker Desktop:
sh
open -a Docker
但在运行 docker info
时,遇到了 Cannot connect to the Docker daemon
错误,表明 Docker 守护进程 (dockerd
) 没有运行。你解决问题的方法:
sh
docker system prune -a
open -a Docker
2. Gitea 运行
你尝试运行 Gitea 容器:
sh
docker run -d --name gitea -p 8888:3000 -p 22:22 -v /data/gitea:/data --restart always gitea/gitea:latest
但出现 文件共享错误:
vbnet
mounts denied: The path /data/gitea is not shared from the host.
你尝试创建 /data/gitea
目录:
sh
sudo mkdir -p /data/gitea
chmod 777 /data/gitea
但 /data
在 macOS 上是 只读文件系统 ,导致 mkdir: /data: Read-only file system
失败。
3. 解决 Docker 文件共享问题
你决定使用 $HOME/data
而不是 /data
:
sh
mkdir -p ~/data/gitea
chmod 777 ~/data/gitea
然后调整 Docker 命令:
sh
docker run -d --name gitea -p 8888:3000 -p 22:22 -v ~/data/gitea:/data --restart always gitea/gitea:latest
但仍然遇到 端口冲突问题:
perl
ports are not available: exposing port TCP 0.0.0.0:22 -> 127.0.0.1:0: listen tcp 0.0.0.0:22: bind: address already in use
这表明 本机的 SSH 服务器占用了 22 端口。
4. 修改 Gitea 容器的 SSH 端口
你决定修改 SSH 端口,避免冲突:
sh
docker run -d --name gitea -p 8888:3000 -p 2222:22 -v ~/data/gitea:/data --restart always gitea/gitea:latest
最终,你成功启动了 Gitea,容器 ID:
4fe5773cc7377a339c3558c29a51742b1e5da9744a9c7d37de11e9766c336da9
5. 访问 Gitea
现在,你可以在浏览器中访问:
arduino
http://localhost:8888
并通过 SSH 进行 Git 操作:
sh
git remote add origin ssh://git@localhost:2222/my-repo.git
git push origin main
总结
在 macOS 下运行 Docker 并部署 Gitea,你遇到了 文件共享问题、端口冲突、已有容器占用 等问题,并成功解决: ✅ 使用 $HOME/data
目录替代 /data
✅ 修改 SSH 端口避免与 macOS 的 22 端口冲突
✅ 清理和管理已有 Docker 容器
你的最终成功指令:
sh
mkdir -p ~/data/gitea
chmod 777 ~/data/gitea
docker run -d --name gitea -p 8888:3000 -p 2222:22 -v ~/data/gitea:/data --restart always gitea/gitea:latest
这样,你的 macOS 上已经成功运行 Gitea 作为代码管理服务器!🚀 你打算如何利用它?主要是 MCP 相关项目吗?还是用来管理 Node.js 工程?