简介
本教程将指导您如何在 mac 系统上安装 Docker 24.0.9。Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到各种操作系统上。Docker使应用的部署和扩展变得更加简单和高效。
前置要求
- Mac 操作系统
- 稳定的网络连接
- 管理员权限
- 64位操作系统
- 至少4GB的RAM
- macOS 10.14+ (Mojave或更新版本)
安装方法
Docker Desktop安装
Docker Desktop是官方推荐的安装方式,适用于Intel和Apple Silicon芯片的Mac。
1. 下载Docker Desktop安装包
访问Docker官方网站,下载适合您Mac芯片的Docker Desktop安装包。
https://www.docker.com/products/docker-desktop/
请确保下载正确的版本:Intel Mac或Apple Silicon Mac。
2. 安装Docker Desktop
双击下载的.dmg文件,然后将Docker图标拖到Applications文件夹。
3. 启动Docker
从应用程序文件夹或Launchpad中打开Docker应用。初次启动时,可能需要提供管理员密码。
使用Homebrew安装
Homebrew是Mac上流行的包管理器,可以用来安装Docker Desktop。
1. 使用Homebrew安装Docker
打开终端,执行以下命令:
brew install --cask docker
2. 启动Docker
安装完成后,从应用程序文件夹中启动Docker。
验证安装
1. 验证Docker版本
检查Docker是否正确安装及其版本:
docker --version
Docker version 25.0.3, build 4debf41
2. 验证Docker守护进程是否运行
运行一个简单的容器来验证Docker守护进程是否正常运行:
docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
3. 检查Docker信息
查看Docker系统信息:
docker info
这个命令会显示Docker的详细配置信息,包括存储驱动、容器数量、镜像数量等。
基本使用示例
运行一个容器
运行一个基于Nginx的Web服务器容器:
docker run -d -p 8080:80 --name my-nginx nginx
这个命令将拉取nginx镜像并在后台(-d)运行一个容器,将主机的8080端口映射到容器的80端口(-p 8080:80),并将容器命名为my-nginx。
列出所有容器
查看所有正在运行的容器:
docker ps
这个命令显示当前运行的所有容器。添加-a参数可以查看所有容器,包括已停止的容器。
停止和删除容器
停止和删除先前创建的Nginx容器:
docker stop my-nginx
docker rm my-nginx
首先使用stop命令停止容器,然后使用rm命令删除容器。
构建自定义镜像
使用Dockerfile创建自定义镜像:
# 创建Dockerfile
cat > Dockerfile << EOF
FROM node:14
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
EOF
# 构建镜像
docker build -t my-node-app .
上述命令首先创建了一个简单的Dockerfile,定义了一个基于Node.js的应用。然后使用docker build命令构建镜像,并将其标记为my-node-app。
使用Docker Compose管理多容器应用
创建并启动一个包含Node.js应用和MongoDB数据库的多容器应用:
# 创建docker-compose.yml
cat > docker-compose.yml << EOF
version: "3.8"
services:
app:
image: my-node-app
ports:
- "3000:3000"
depends_on:
- mongodb
mongodb:
image: mongo
ports:
- "27017:27017"
volumes:
- mongodb_data:/data/db
volumes:
mongodb_data:
EOF
# 启动服务
docker-compose up -d
这个示例展示了如何使用Docker Compose定义和运行多容器应用。docker-compose.yml文件定义了一个由Node.js应用和MongoDB数据库组成的应用堆栈。使用docker-compose up命令启动整个应用堆栈。
常见问题
问题:docker command not found
解决方案:确保软件已正确安装并添加到系统PATH中。可能需要重启终端或系统。
问题:安装过程中遇到权限错误
解决方案:确保您有管理员权限。在Windows上以管理员身份运行命令提示符,在Mac/Linux上使用sudo。
问题:Docker守护进程无法启动
解决方案:检查Docker服务状态并重启服务。
killall Docker && open /Applications/Docker.app
问题:权限不足
解决方案:确保当前用户属于docker用户组,或使用sudo运行Docker命令。
使用管理员权限运行Docker相关命令
问题:Docker容器无法访问网络
解决方案:检查网络配置和防火墙设置。
sudo ufw allow 2375/tcp
使用技巧
使用Docker Compose简化多容器应用的管理。
经常使用docker system prune命令清理未使用的资源,包括悬挂镜像、停止的容器和未使用的网络。
为常用命令创建别名,例如在.bashrc或.zshrc中添加:alias dps="docker ps"。
使用Docker卷(volumes)持久化容器数据,而不是在容器内存储数据。
使用多阶段构建(multi-stage builds)减小最终镜像的大小。
在生产环境中,考虑使用Docker Swarm或Kubernetes进行容器编排。
定期更新您的Docker和基础镜像,以获取安全补丁和性能改进。
在Dockerfile中使用.dockerignore文件排除不需要的文件,减小构建上下文大小。
为了安全起见,在容器中使用非root用户运行应用。
使用Docker Scout或其他工具定期扫描您的容器镜像,查找安全漏洞。
相关资源
总结
恭喜!您已经成功安装了Docker 24.0.9,并了解了基本的使用方法。Docker是一个强大的工具,可以帮助您简化开发、测试和部署过程。随着您对Docker的深入了解,您将能够构建更复杂的容器化应用程序,使用Docker Compose管理多容器应用,甚至使用Docker Swarm或Kubernetes进行容器编排。继续探索Docker的更多功能,将为您的开发工作流程带来更多便利。