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
命令将指定容器连接到自定义网络,使其能够与同一网络中的其他容器通信。
-
-
数据卷管理:
- &