Docker 是一种容器化平台,它允许开发者在隔离的容器中创建、部署和管理应用程序。这些容器打包了应用程序代码、运行时环境、库和依赖项,确保在不同系统间的一致性和效率。
Docker平台使用容器来开发、启动和运维应用程序。容器包括运行应用程序所需的代码、运行时环境、系统工具和库,是一个小型的、独立的包。与虚拟机不同,容器不需要独立的操作系统,而是共享宿主机的操作系统内核,使它们更轻量级、更高效。
Docker 使用客户端-服务器架构,其中 Docker CLI 引擎是核心。Docker 引擎由三个主要部分组成:Docker 守护进程、Docker 客户端和 Docker 对象(包括镜像、容器、网络和卷)。
使用 Docker CLI 的典型工作流程包括:创建 Dockerfile、创建镜像、运行容器以及在不同环境中分发和部署。
Docker 提供了一致性、隔离性、便携性和可扩展性等优势,使得开发者能够简化应用程序的开发、部署和维护流程。
Docker 遵循客户端-服务器架构,包括 Docker 客户端、Docker 守护进程、Docker 镜像和 Docker 容器。Docker 镜像是用于创建容器的只读模板,而 Docker 容器是镜像的运行实例。
根据操作系统,按照适当的步骤安装 Docker。以下是 Windows 和 MacOS 的安装步骤。
以下是一些常用的 Docker 命令,用于不同的功能。
docker run [options] IMAGE [command]
例如,运行 Nginx 网络服务器:
docker run -d -p 80:80 nginx
启动已停止的容器:
docker start CONTAINER_ID
停止正在运行的容器:
docker stop CONTAINER_ID
列出所有运行中的容器:
docker ps
查看所有容器(包括已停止的):
docker ps -a
从注册表拉取镜像:
docker pull IMAGE_NAME[:TAG]
从Dockerfile 构建镜像:
docker build -t IMAGE_NAME[:TAG].
创建用户定义的桥接网络:
docker network create NETWORK_NAME
将容器连接到网络:
docker network connect NETWORK_NAME CONTAINER_NAME
移除已停止的容器:
docker rm CONTAINER_ID
移除镜像:
docker rmi IMAGE_NAME
清理未使用的资源(容器、网络、镜像和卷):
docker system prune
Docker Compose 是一个定义和管理多容器 Docker 应用程序的工具。它使用 YAML 文件配置应用程序的服务、网络和卷。以下是 Docker Compose 的命令。
docker-compose up
docker-compose up -d
docker-compose down
docker-compose ps
docker-compose logs [service_name]
docker-compose build
docker-compose exec [service_name] [command]
docker swarm init
docker swarm join
docker node ls
docker service create
docker service ls
docker service ps [service_name]
docker service scale [service_name]=N
docker service update
docker service rm [service_name]
docker node update –availability drain [node_name]
docker exec [options] CONTAINER_ID COMMAND [ARG…]
docker exec -it CONTAINER_ID sh