文章目录
- 一、 Docker的基本操作
- 1.1 镜像
- 1.1.1 介绍
- 1.1.2 镜像操作
- 1.2 容器
- 1.2.1 介绍
- 1.2.2 容器操作
- 1.3 数据卷
- 1.3 介绍
- 1.3.2 数据卷操作
一、 Docker的基本操作
1.1 镜像
1.1.1 介绍
在 Docker 中,镜像(Image)是一种轻量级、可移植的、可扩展的软件包,其中包含了运行应用程序所需的所有代码、依赖项、配置文件等。镜像可以被用于创建 Docker 容器,并在容器中运行应用程序。
镜像在 Docker 中有着重要的作用,主要体现在以下几个方面:
- 应用程序的打包和分发:Docker 镜像可以将应用程序和其所需的运行环境打包成一个可移植的软件包。这样,应用程序开发人员可以将其应用程序和镜像一起打包,方便地将应用程序分发到各个部署环境中,而无需担心环境差异导致的运行问题。
- 快速部署和扩展:Docker 镜像可以被快速地部署和扩展,因为 Docker 容器可以在几秒钟之内启动和停止。通过使用镜像,可以快速地创建新的容器实例,而无需重新配置环境或重新安装应用程序。
- 环境一致性:Docker 镜像提供了环境一致性的保证。由于 Docker 镜像包含了所有应用程序所需的依赖项和配置文件等,因此可以保证在任何部署环境中,应用程序都能以相同的方式运行,从而避免了环境差异导致的运行问题。
- 版本控制:Docker 镜像支持版本控制,可以通过版本号来管理不同版本的镜像。这样可以方便地管理应用程序的不同版本,以及在需要时进行回滚操作。
Docker 镜像在 Docker 中具有重要的作用,可以方便地打包、分发、部署和扩展应用程序,保证环境一致性,支持版本控制等。
1.1.2 镜像操作
Docker镜像相关的常用命令:
- 拉取镜像:从Docker Hub或其他仓库中拉取一个镜像到本地:
docker pull <image-name>:<tag>
- 查看本地镜像列表:列出本地已经下载的Docker镜像:
docker images
- 删除本地镜像:删除本地一个或多个Docker镜像:
docker rmi <image-name>:<tag>
- 构建镜像:使用Dockerfile构建自定义的Docker镜像:
docker build -t <image-name>:<tag> <path-to-Dockerfile>
- 查找镜像:从Docker Hub或其他仓库中查找一个镜像:
docker search <image-name>
- 上传镜像:将本地一个或多个Docker镜像上传到Docker Hub或其他仓库:
docker push <image-name>:<tag>
- 查看镜像详情:查看Docker镜像的详细信息:
docker inspect <image-name>:<tag>
- 保存镜像为压缩包:将一个或多个本地 Docker 镜像打包成一个 tar 文件,这个 tar 文件可以被传输到其他机器上:
docker save -o <output-file-name>.tar <image-name>:<tag>
- 加载压缩包为镜像:将一个或多个本地 Docker 镜像导入到 Docker 引擎中:
docker load -i <input-file-name>.tar
1.2 容器
1.2.1 介绍
Docker 容器是 Docker 中运行应用程序的一个独立的、可执行的单元。每个容器都是一个独立的、隔离的运行环境,它包含了应用程序、其依赖项、运行时环境和文件系统等。
Docker 容器的作用主要体现在以下几个方面:
-
隔离:每个 Docker 容器都是一个独立的运行环境,与宿主机和其他容器隔离开来。这样可以确保应用程序在容器中运行时不会相互干扰,从而提高了系统的稳定性和可靠性。
-
灵活性:Docker 容器可以快速地启动、停止、删除和复制,可以方便地进行部署、测试、开发和运维等工作。而且,由于容器是基于镜像构建的,因此可以很容易地进行版本控制和更新,使得应用程序的部署变得更加灵活和快速。
-
轻量级:相比于虚拟机等传统的虚拟化技术,Docker 容器更加轻量级,启动速度更快,占用资源更少。这使得 Docker 容器非常适合于在云环境中进行部署和运维。
-
可移植性:由于 Docker 容器是基于镜像构建的,因此可以在任何支持 Docker 的环境中运行,而无需担心环境差异导致的运行问题。这使得应用程序的部署和迁移变得更加简单和方便。
Docker 容器在 Docker 中具有重要的作用,可以提高系统的稳定性和可靠性,提高部署和运维的灵活性和效率,减少资源占用,支持跨平台和可移植性。
1.2.2 容器操作
Docker容器相关的常用命令:
- 运行容器:运行一个Docker容器:
docker run <image-name>:<tag>
- 列出容器:列出当前正在运行的Docker容器:
docker ps
- 暂停容器:暂停容器内所有的进程:
docker pause <container-id>
- 取消暂停:恢复容器内所有被暂停的进程,使它们继续运行:
docker unpause <container-id>
- 停止容器:停止一个正在运行的Docker容器:
docker stop <container-id>
- 启动容器:命令用于启动已经停止的容器:
docker start <container-id>
- 删除容器:删除一个已经停止的Docker容器:
docker rm <container-id>
- 进入容器:进入一个正在运行的Docker容器中:
docker exec -it <container-id> /bin/bash
- 查看容器日志:查看一个正在运行的Docker容器的日志:
docker logs <container-id>
- 导出容器:将一个正在运行的Docker容器导出为一个 tar 文件:
docker export <container-id> -o <output-file-name>.tar
- 导入容器:将一个已经导出的 Docker 容器导入到 Docker 引擎中:
docker import <input-file-name>.tar <image-name>:<tag>
1.3 数据卷
1.3 介绍
Docker 数据卷是 Docker 容器和主机之间共享数据的一种方式,可以在不影响容器的前提下在主机和容器之间共享文件、目录等数据。数据卷可以在容器创建时或容器运行时挂载到容器中,以供容器内的应用程序使用。
Docker 数据卷的作用主要有以下几点:
- 数据持久化:Docker 容器中的文件系统是临时的,并不会一直保存在容器中,当容器被删除时,其中的数据也会随之丢失。使用数据卷可以将数据持久化,确保数据在容器被删除后依然可以被访问和使用。
- 数据共享:使用数据卷可以将数据从主机传输到容器中,并在不同的容器之间共享数据。这样可以实现不同容器之间的数据交换和共享,而无需将数据保存在容器内部。
- 数据备份和恢复:使用数据卷可以方便地对容器中的数据进行备份和恢复。在备份时,只需要将数据卷打包成一个文件即可;在恢复时,只需要将该文件解压到对应的数据卷中即可。
- 跨主机迁移:使用数据卷可以方便地将数据从一个主机迁移到另一个主机,而无需担心数据的丢失和不一致性问题。在新主机上创建一个新的数据卷并将备份文件还原到该数据卷中,就可以实现跨主机迁移。
Docker 数据卷可以在容器和主机之间提供数据的持久化、共享、备份和恢复等功能,方便了 Docker 应用的部署和维护。
1.3.2 数据卷操作
Docker 数据卷相关的常用命令:
- 创建数据卷:创建一个新的数据卷:
docker volume create <volume-name>
- 查看数据卷:列出当前所有的 Docker 数据卷:
docker volume ls
- 删除数据卷:删除一个已经存在的 Docker 数据卷:
docker volume rm <volume-name>
- 检视数据卷:显示 Docker 数据卷的详细信息:
docker volume inspect <volume-name>
- 修剪数据卷:删除未被使用的 Docker 数据卷:
docker volume prune