docker使用
安装 Docker
- Linux 系统:不同 Linux 发行版安装命令不同。对于 Ubuntu/Debian 系统,使用
apt-get安装,命令如下:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
对于 CentOS/RHEL 系统,使用yum安装,命令如下:
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
安装后需要启动 docker 服务:sudo systemctl start docker。
- Windows/Mac 系统:从 Docker 官网下载 Docker Desktop 安装包,然后按照安装向导进行安装即可。
常用命令
- 镜像操作:
- 拉取镜像:使用
docker pull <image_name>命令从指定镜像仓拉取镜像到本地,如docker pull ubuntu:20.04。 - 查看镜像:通过
docker images命令可以列出本地已下载的镜像。 - 删除镜像:
docker rmi <image_name>用于删除指定镜像,但删除镜像前需确保没有容器在使用该镜像。
- 拉取镜像:使用
- 容器操作:
- 运行容器:
docker run <image_name>可以从镜像创建并运行一个新的容器。例如docker run --name my - nginx - p 8080:80 - d nginx,其中--name用于给容器起一个自定义的名字,-p用于端口映射,-d表示在后台运行容器。 - 查看容器:
docker ps用于列出当前运行的容器,docker ps --all可以列出当前运行和已停止的所有容器。 - 启动、停止和删除容器:
docker start <container_name>用于启动一个现有的容器,docker stop <container_name>用于停止一个现有的容器,docker rm <container_name>用于删除一个已停止的容器。
- 运行容器:
构建镜像
可以通过编写Dockerfile来构建自定义镜像。Dockerfile是一个文本文件,其中包含了一系列指令,用于描述如何构建镜像。例如:
FROM ubuntu:20.04
RUN apt - get update && apt - get install - y python3 python3 - pip
COPY. /app
WORKDIR /app
RUN pip3 install - r requirements.txt
CMD ["python3", "app.py"]
编写好Dockerfile后,在包含该文件的目录下执行docker build -t my - python - app.命令来构建镜像,其中-t用于给镜像指定一个标签。
数据卷操作
数据卷是一种用于在容器和宿主机之间共享数据的机制。可以使用-v参数来创建数据卷。例如,docker run -d --name my - nginx - v /host/path:/container/path nginx,这将把宿主机上的/host/path目录挂载到容器内的/container/path目录。
容器网络
Docker 支持多种网络模式,如桥接网络、主机网络等。可以使用--network参数来指定容器使用的网络模式。例如,docker run -d --name my - nginx --network my - network nginx,其中my - network是一个自定义的网络。
容器编排
当需要管理多个容器时,可以使用 Docker Compose。Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。首先需要编写一个docker - compose.yml文件,例如:
version: '3'
services:
web:
image: nginx
ports:
- "8080:80"
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: mysecretpassword
然后在包含docker - compose.yml文件的目录下执行docker - compose up - d命令来启动所有容器。
遇到问题:
Failed to initialize: unable to resolve docker endpoint: open C:\Users\1\.docker\machine\machines\default\ca.pem: The system cannot find the path specified. (base)
现代 Docker Desktop(Windows 版)默认使用 WSL2 作为后端,而非 Docker Machine,
步骤 1:检查并切换 Docker 上下文
Docker 上下文(Context)决定了命令连接的 Docker 主机,你的环境可能默认指向了不存在的default Machine。
-
打开 PowerShell,查看当前所有上下文:
docker context ls正常情况下,应显示类似以下结果(重点看
NAME和STATUS):NAME TYPE DESCRIPTION DOCKER ENDPOINT KUBERNETES ENDPOINT ORCHESTRATOR default docker Current DOCKER_HOST based configuration unix:///var/run/docker.sock desktop-linux * docker npipe:////./pipe/docker_engine(
*表示当前活跃的上下文) -
如果当前上下文是
default(且状态异常),切换到正确的上下文:# 切换到Docker Desktop默认的WSL2后端上下文(通常是desktop-linux) docker context use desktop-linux
步骤 2:删除无效的 Docker Machine 上下文(如果存在)
如果docker context ls中存在default上下文且无法使用,直接删除它:
# 删除无效的default上下文
docker context rm default
步骤 3:确认 WSL2 后端正常工作
Docker Desktop 在 Windows 上推荐使用 WSL2 作为后端,检查 WSL2 是否启用:
-
打开 PowerShell,执行:
wsl --list --verbose应显示至少一个 WSL2 发行版(如
Ubuntu),状态为Running或Stopped(stopped 也可,Docker 会自动启动)。 -
若未安装 WSL2,按以下步骤启用:
# 启用WSL功能 wsl --install # 安装完成后重启电脑
步骤 4:重启 Docker Desktop 并验证
- 完全关闭 Docker Desktop(右键托盘图标→"Quit Docker Desktop")
- 重新启动 Docker Desktop,等待其完全初始化(托盘图标稳定)
- 再次运行测试命令:
docker run hello-world
更多推荐

所有评论(0)