Docker基础和常用命令详解
Docker基础和常用命令详解
2024-09-03 00:30
Docker是一种开源的容器化平台,用于开发、部署和运行应用程序。它将应用程序及其依赖打包到一个标准化的单元中,称为容器,使得应用程序可以在任何环境中一致地运行。以下是Docker的基础知识和常用命令的详细解析。
Docker是一种开源的容器化平台,用于开发、部署和运行应用程序。它将应用程序及其依赖打包到一个标准化的单元中,称为容器,使得应用程序可以在任何环境中一致地运行。以下是Docker的基础知识和常用命令的详细解析。

一、Docker基础概念
-
镜像(Image):
Docker镜像是一个只读的模板,其中包含了运行应用程序所需的所有依赖。镜像可以通过Dockerfile定义,Dockerfile包含了创建镜像的所有指令。镜像是容器运行的基础。
-
容器(Container):
容器是镜像的一个运行实例。它是一个轻量级、可移植的运行环境,包含应用程序及其所有依赖。容器与主机系统隔离,但可以与其他容器或主机系统交互。
-
Docker Hub:
Docker Hub是一个云端的Docker镜像库,用户可以在上面下载、上传或共享镜像。它是Docker的官方镜像仓库,包含了大量的公共镜像。
-
Docker引擎(Docker Engine):
Docker引擎是一个轻量级的容器运行时,负责构建、运行和管理Docker容器。它包含了Docker守护进程(daemon)、客户端(client)和REST API接口。
二、Docker安装
-
在CentOS 7上安装Docker:
使用以下命令安装Docker CE(社区版):
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官方仓库并安装Docker CE。yum-utils提供了yum-config-manager工具,用于管理yum源。
-
启动Docker服务:
安装完成后,启动Docker并设置为开机自启:
sudo systemctl start docker
sudo systemctl enable docker
解释:systemctl start docker启动Docker守护进程,systemctl enable docker确保Docker在系统启动时自动启动。
三、常用Docker命令详解
-
镜像管理:
-
列出本地镜像:
docker images
解释:docker images命令列出本地所有的Docker镜像,包括镜像的仓库名、标签、ID、创建时间和大小。
-
拉取镜像:
docker pull ubuntu:latest
解释:docker pull命令从Docker Hub中拉取指定的镜像,这里拉取的是Ubuntu的最新版本。
-
删除镜像:
docker rmi ubuntu:latest
解释:docker rmi命令用于删除本地的Docker镜像,删除时需要指定镜像的名称或ID。
-
容器管理:
-
创建并运行容器:
docker run -d --name my_container ubuntu:latest
解释:docker run命令创建并运行一个新的容器,-d选项表示后台运行,--name为容器指定名称,后面的ubuntu:latest表示基于Ubuntu最新镜像创建容器。
-
列出运行中的容器:
docker ps
解释:docker ps命令列出当前正在运行的容器,包括容器ID、名称、镜像、状态等信息。
-
列出所有容器:
docker ps -a
解释:docker ps -a命令显示所有容器(包括已停止的),这有助于管理和查看容器的历史状态。
-
停止容器:
docker stop my_container
解释:docker stop命令用于停止运行中的容器,需要指定容器的名称或ID。
-
启动容器:
docker start my_container
解释:docker start命令用于启动已经存在但目前停止的容器。
-
删除容器:
docker rm my_container
解释:docker rm命令用于删除已经停止的容器,容器必须在停止状态下才能被删除。
-
容器操作:
-
进入运行中的容器:
docker exec -it my_container /bin/bash
解释:docker exec命令允许你在运行中的容器中执行命令,-it选项将当前终端连接到容器的bash shell,使得可以在容器内进行操作。
-
查看容器日志:
docker logs my_container
解释:docker logs命令用于查看指定容器的标准输出日志,帮助诊断问题或查看容器运行状态。
-
查看容器资源使用情况:
docker stats my_container
解释:docker stats命令实时显示容器的资源使用情况,包括CPU、内存、网络和磁盘IO等信息。
-
网络管理:
-
列出Docker网络:
docker network ls
解释:docker network ls命令列出所有Docker网络,包括默认的bridge、host和none网络。
-
创建自定义网络:
docker network create my_network
解释:docker network create命令用于创建一个自定义的Docker网络,容器可以通过该网络进行相互通信。
-
连接容器到网络:
docker network connect my_network my_container
解释:docker network connect命令将指定容器连接到自定义网络,使其能够与同一网络中的其他容器通信。
-
数据卷管理:
-
&