1. 什么是docker
Docker 是一种开源的容器化平台,用于开发、交付和运行应用程序。它允许开发人员将应用程序及其依赖项(如库、环境变量、配置文件等)打包到一个被称为容器的标准化单元中。这个容器包含了一切应用程序需要运行的所有内容,从操作系统到运行时环境,甚至是应用程序本身。
Docker 提供了一种轻量级、可移植、自给自足的容器化解决方案。每个容器都是一个独立的、隔离的环境,可以在任何支持 Docker 的平台上运行,而不需要进行修改。这种隔离性使得容器能够在不同的环境中以一致的方式运行,从而简化了应用程序的交付和部署过程。
2. Docker 的关键概念
镜像(Image):镜像是容器的基础,它包含了一个完整的文件系统,其中包含了应用程序运行所需的所有内容。镜像是只读的,用于创建容器的模板。
容器(Container):容器是通过在镜像上创建一个可写的文件系统层而创建的运行时实例。每个容器都是一个独立的、隔离的环境,可以在其中运行应用程序。
仓库(Repository):仓库是用于存储和组织 Docker 镜像的地方。它可以是本地仓库,也可以是远程仓库(如 Docker Hub),允许用户共享和下载镜像。
Dockerfile:Dockerfile 是一个文本文件,包含了一系列指令,用于构建 Docker 镜像。通过编写 Dockerfile,开发人员可以定义应用程序的环境和配置,并使用 Docker 命令构建镜像。
3.docker的常见命令
镜像相关命令:
docker images:列出本地的 Docker 镜像。
docker pull <镜像名称>:从 Docker Hub 或其他注册表中拉取镜像。
docker rmi <镜像ID或名称>:删除本地的 Docker 镜像。
容器相关命令:
docker ps:列出正在运行的容器。
docker ps -a:列出所有容器,包括已停止的。
docker run <镜像名称>:运行一个新的容器。
docker run -p 8888:8080 <镜像名称>:运行容器并进行端口的映射
docker start <容器ID或名称>:启动已停止的容器。
docker stop <容器ID或名称>:停止正在运行的容器。
docker restart <容器ID或名称>:重新启动容器。
docker rm <容器ID或名称>:删除一个或多个容器。
docker container prune:删除所有已经停止的容器,释放资源
docker logs <容器ID或名称>:查看容器的日志。
docker exec -it <容器ID或名称> /bin/bash:进入容器内部
exit:退出容器
网络相关命令:
docker network ls:列出 Docker 网络。
docker network inspect <网络名称>:查看特定 Docker 网络的详细信息。
卷相关命令:
docker volume ls:列出 Docker 卷。
docker volume create <卷名称>:创建一个新的 Docker 卷。
docker volume inspect <卷名称>:查看特定 Docker 卷的详细信息。
其他常见命令:
docker info:显示 Docker 系统信息,例如容器和镜像的数量。
docker version:显示 Docker 版本信息。
docker exec -it <容器ID或名称> <命令>:在正在运行的容器中执行命令。