Docker的基本操作和Docker Compose的应用示例
首先
2022年9月开始正式学习编程,并在2023年4月初加入京都的Web型初创企业,担任前端工程师职位。
目前已经是工程师的第二个月了。
在工作中,我主要使用WordPress、JavaScript和Laravel。
在这篇文章中,我们将介绍Docker的基本命令及其使用示例,以及Docker Compose。
这篇文章的目标读者
-
- Dockerについてある程度知識のある方
-
- Dockerコマンドを確認したい方
- Dockerコマンドを忘れた方
开发环境
mac Ventura 13.4
Visual Studio Code
Docker version 20.10.22
Docker 的基础命令和使用示例
以下是常用的Docker基本命令及其用法示例。
拉取Docker镜像
这个命令是从Docker Hub获取特定的Docker镜像。例如,以下命令将获取最新的Ubuntu镜像。
docker image pull ubuntu:latest
构建Docker镜像
这个命令会根据Dockerfile构建一个新的Docker镜像。以下命令将使用当前目录下的Dockerfile构建一个名为myimage的镜像。
docker image build -t myimage .
创建 Docker 容器
这个命令将从特定的图像创建一个新的容器。下面的命令将从名为myimage的图像创建一个名为mycontainer的新容器。
docker container create --name mycontainer myimage
启动docker容器
这个命令会启动特定的容器。以下命令会启动一个名为mycontainer的容器。
docker container start mycontainer
停止 Docker 容器
这个命令用来停止特定的容器。下面的命令会停止名为mycontainer的容器。
docker container stop mycontainer
删除 Docker 容器
这个命令用于删除指定的容器。以下命令将删除名为mycontainer的容器。
docker container rm mycontainer
运行Docker容器
使用此命令从特定的镜像创建一个新的容器并启动它。以下命令从名为myimage的镜像创建一个新的容器并启动它。
docker container run --name mycontainer myimage
重新启动Docker容器。
这个命令用于重新启动特定的容器。下面的命令将重新启动名为mycontainer的容器。
docker container restart mycontainer
通过结合这些指令,可以进行更复杂的操作。
关于Docker Compose和docker-compose.yml的内容
Docker Compose是一种用于同时管理多个容器的工具。通过创建名为docker-compose.yml的配置文件,可以集中管理多个容器的设置。以下是一个简单的docker-compose.yml示例。
version: '3'
services:
web:
image: 'nginx:latest'
ports:
- '80:80'
db:
image: 'mysql:latest'
environment:
MYSQL_ROOT_PASSWORD: password
在此配置文件中,定义了nginx容器作为Web服务的容器,以及mysql容器作为数据库服务的容器。配置文件中指定了每个服务使用的镜像、环境变量和要公开的端口等信息。
Docker Compose的优势
使用Docker Compose可以通过一个配置文件来管理多个容器的设置,这比手动执行每个命令更简单和高效。此外,通过将配置文件与源代码一起使用版本控制系统进行管理,可以与其他开发人员共享容器的设置,并轻松返回到以前的设置。
此外,Docker 的最佳实践之一是每个容器只负责一项功能。遵循这个原则,每个容器都能独立运行,即使一个服务出现问题也不会影响到其他服务,这是一个优点。Docker Compose 是一个适用于管理多个容器的工具,符合这个原则。
使用Docker Compose进行多个容器操作的步骤。
在Docker Compose中,您可以同时操作在docker-compose.yml文件中定义的所有服务(容器)。下面是主要的命令和它们的步骤解释。
使用docker-compose构建
此命令用于构建在docker-compose.yml文件中定义的服务。下面的命令将构建所有的服务。
docker-compose build
使用docker-compose启动
该命令将启动在docker-compose.yml文件中定义的所有服务。以下命令将启动所有服务并将日志输出到终端上。
docker-compose up
停止Docker Compose运行
使用此命令将停止在docker-compose.yml文件中定义的所有服务。以下命令将停止所有服务。
docker-compose stop
删除docker-compose配置
该命令将删除在docker-compose.yml中定义的所有服务的容器。下面的命令将删除所有服务的容器。
docker-compose rm
使用Docker Compose 重新启动
这个命令会重新启动在docker-compose.yml中定义的所有服务。以下的命令会重新启动所有的服务。
docker-compose restart
使用docker-compose下线
此命令用于停止docker-compose.yml文件中定义的所有服务,并删除它们的容器、网络和卷。以下命令将停止所有服务并删除它们的资源。
docker-compose down
此外,在Docker Compose中很少使用docker-compose pull命令。这是因为当执行docker-compose up或docker-compose build时,如果本地没有所需的镜像,它会自动从Docker Hub获取(pull)镜像。
关于其他常用操作
Docker和Docker Compose除了上述的基本操作外,还有许多有用的命令。
使用docker-compose exec命令进行操作
这条命令会在正在运行的容器内执行命令。例如,下面的命令会在正在运行的Web服务容器内启动bash。
docker-compose exec web bash
docker-compose的运行状态
这个命令会显示由Docker Compose管理的容器的状态。下面的命令会显示所有容器的状态。
docker-compose ps
通过使用docker-compose命令查看日志
这个命令用来显示容器的日志。以下命令用来显示web服务中容器的日志。
docker-compose logs web
清理docker系统
这个命令将删除不再使用的Docker资源(容器,网络,镜像),从而释放系统的磁盘空间。但是,正在使用中的资源和带有标签的镜像将不会被删除。以下命令将删除未使用的资源。
docker system prune
建议您在执行此命令之前确认是否存在重要数据,因为执行该命令会删除未使用的资源,并且一旦删除,将不可恢复。
总结
Docker 和 Docker Compose 是可以极大提高软件开发效率的工具。通过使用 Docker Compose,可以集中管理多个容器,并轻松与其他开发者共享配置。此外,通过理解和充分利用各个命令,可以有效地管理镜像和容器的生命周期。请利用这些知识来构建一个高效的开发环境。