以下是一个基本的 Docker 使用教程:
一、安装 Docker
- 不同操作系统的安装方式
- Windows:
- 确保你的系统是 Windows 10 及以上版本(专业版、企业版或教育版),因为需要用到 Windows 操作系统的 Hyper - V 功能。你可以从 Docker 官方网站下载 Docker Desktop for Windows 安装程序。
- 双击安装程序,按照安装向导的提示完成安装。在安装过程中,安装程序会自动启用所需的 Windows 功能,并配置 Docker 环境。安装完成后,Docker 会自动启动。
- Mac:
- 从 Docker 官方网站下载 Docker Desktop for Mac 安装程序。
- 打开安装包,将 Docker 图标拖移到 Applications 文件夹,然后打开 Docker 应用程序。它会自动完成安装和初始化过程,包括安装必要的系统组件和配置环境。
- Linux(以 Ubuntu 为例):
- 首先更新系统的软件包列表,打开终端并执行
sudo apt - get update
。 - 安装 Docker 相关的软件包,执行
sudo apt - get install docker - ce docker - ce - cli containerd.io
。这会安装 Docker 社区版(CE)以及相关的工具。 - 安装完成后,将当前用户添加到
docker
用户组,这样可以避免每次使用 Docker 命令都需要使用sudo
权限,执行sudo usermod - aG docker $USER
。然后注销并重新登录系统,使设置生效。
- 首先更新系统的软件包列表,打开终端并执行
- Windows:
二、基本操作
-
镜像操作
- 搜索镜像:使用
docker search [镜像名称]
命令可以在 Docker Hub(默认的公共镜像仓库)中搜索镜像。例如,如果你想查找一个 Ubuntu 镜像,执行docker search ubuntu
,它会列出包含 Ubuntu 关键词的镜像列表,包括镜像名称、描述、星级评价、官方与否等信息。 - 拉取镜像:使用
docker pull [镜像名称]
命令从仓库中拉取镜像到本地。例如,拉取官方的 Ubuntu 20.04 镜像,执行docker pull ubuntu:20.04
。这里的20.04
是镜像标签,用于区分不同版本的镜像。如果不指定标签,默认会拉取最新版本(通常标签为latest
)。 - 查看本地镜像:使用
docker images
命令可以查看本地已有的镜像列表。列表中会显示镜像的仓库名称、标签、镜像 ID、创建时间和大小等信息。 - 删除镜像:如果要删除本地的镜像,可以使用
docker rmi [镜像ID或镜像名称:标签]
命令。例如,要删除刚才拉取的 Ubuntu 20.04 镜像(假设其镜像 ID 为abcdef123456
),执行docker rmi abcdef123456
或者docker rmi ubuntu:20.04
。
- 搜索镜像:使用
-
容器操作
- 创建并启动容器:使用
docker run
命令创建并启动一个容器。例如,从刚才拉取的 Ubuntu 20.04 镜像启动一个容器,执行docker run -it ubuntu:20.04 /bin/bash
。这里的-it
参数表示以交互模式(-i
)和终端模式(-t
)运行容器,/bin/bash
是在容器启动后要执行的命令,也就是进入容器的 Bash shell。 - 查看运行中的容器:使用
docker ps
命令可以查看当前正在运行的容器列表。列表中会显示容器 ID、镜像名称、创建时间、状态、端口映射等信息。如果要查看所有的容器(包括已经停止的容器),可以使用docker ps -a
命令。 - 停止容器:使用
docker stop [容器ID或容器名称]
命令停止正在运行的容器。例如,停止刚才启动的 Ubuntu 容器(假设其容器 ID 为789abcdef01
),执行docker stop 789abcdef01
。 - 启动已停止的容器:如果要重新启动一个已经停止的容器,可以使用
docker start [容器ID或容器名称]
命令。例如,启动刚才停止的容器,执行docker start 789abcdef01
。 - 进入容器内部:当容器已经在后台运行,你想进入容器内部进行操作(例如查看容器内的文件系统、执行命令等),可以使用
docker exec -it [容器ID或容器名称] /bin/bash
命令。这个命令和创建容器时的docker run -it
类似,只是作用于已经运行的容器,用于在容器内打开一个新的交互式 Bash shell。 - 删除容器:使用
docker rm [容器ID或容器名称]
命令删除一个容器。需要注意的是,只有容器处于停止状态时才能被删除。如果要强制删除一个正在运行的容器,可以使用docker rm -f [容器ID或容器名称]
命令,但这种方式可能会导致数据丢失等问题,要谨慎使用。
- 创建并启动容器:使用
-
数据卷操作(用于数据持久化)
- 创建数据卷:使用
docker volume create [数据卷名称]
命令创建一个数据卷。例如,创建一个名为my_data_volume
的数据卷,执行docker volume create my_data_volume
。 - 挂载数据卷到容器:在创建容器时,可以使用
-v
参数将数据卷挂载到容器内部的指定目录。例如,将刚才创建的数据卷my_data_volume
挂载到一个 Ubuntu 容器的/data
目录,执行docker run -it -v my_data_volume:/data ubuntu:20.04 /bin/bash
。这样,容器内/data
目录下的数据会存储在数据卷中,即使容器被删除,数据卷中的数据仍然可以保留。 - 查看数据卷信息:使用
docker volume ls
命令可以查看本地所有的数据卷列表,包括数据卷名称、驱动程序和挂载点等信息。如果想查看某个数据卷的详细信息(如数据卷的位置等),可以使用docker volume inspect [数据卷名称]
命令。
- 创建数据卷:使用
-
端口映射(用于容器与外部通信)
- 创建容器时进行端口映射:在创建容器时,可以使用
-p
参数进行端口映射。例如,如果你在容器内部运行了一个 Web 服务器,监听容器内的 80 端口,你想将容器内的 80 端口映射到宿主机的 8080 端口,以便从外部访问这个 Web 服务器,可以执行docker run -it -p 8080:80 [镜像名称]
。这样,当访问宿主机的 8080 端口时,请求会被转发到容器内部的 80 端口。 - 查看端口映射情况:使用
docker ps
命令查看容器信息时,会显示容器的端口映射情况。或者使用docker port [容器ID或容器名称]
命令查看某个容器的详细端口映射信息,它会列出容器内部端口与宿主机端口的映射关系。
- 创建容器时进行端口映射:在创建容器时,可以使用
这些只是 Docker 的基本操作,随着使用的深入,你还可以学习更高级的功能,如 Docker 网络配置、使用 Docker Compose 来管理多个容器的应用、构建自己的 Docker 镜像等。