docker 及 docker-composer 常用命令

服务器   2024-09-26 15:46   937   0  

Docker是一个开源的容器化平台,用于构建、部署和运行应用程序,在linux 环境中安装了 docker 后,自动安装了 docker composer 工具。以下是一些 Docker 及 Docker-composer 的常用命令及其示例,如果是 linux 环境,将命令中的 docker-composer 更换为 docker composer。

一、Docker 常用命令

(一)镜像管理

  1. 列出本地镜像

  • 命令:docker images

  • 示例:无额外参数,直接列出所有本地镜像。

    2. 搜索镜像

  • 命令:docker search [OPTIONS] 镜像名字

  • 示例:docker search mysql 搜索Docker Hub上的MySQL镜像。

    3. 拉取镜像

  • 命令:docker pull [OPTIONS] NAME[:TAG|@DIGEST]

  • 示例:docker pull nginx 从Docker Hub拉取最新版的nginx镜像。

    4. 删除镜像

  • 命令:docker rmi [OPTIONS] IMAGE [IMAGE...]

  • 示例:docker rmi nginx 删除名为nginx的镜像(如果该镜像有正在运行的容器,则会报错)。

  • 强制删除:docker rmi -f nginx

    5. 构建镜像

  • 命令:docker build [OPTIONS] PATH | URL | -

  • 示例:docker build -t myimage . 使用当前目录下的Dockerfile构建名为myimage的镜像。

    6. 保存和加载镜像

  • 保存:docker save -o 保存的文件名 镜像名

  • 加载:docker load -i 文件名

(二)容器管理

  1. 运行容器

  • 命令:docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

  • 示例:docker run -d -p 80:80 nginx 后台运行nginx容器,并将容器的80端口映射到主机的80端口。

    2. 列出容器

  • 列出正在运行的容器:docker ps

  • 列出所有容器(包括停止的):docker ps -a

    3. 停止容器

  • 命令:docker stop [OPTIONS] CONTAINER [CONTAINER...]

  • 示例:docker stop mycontainer 停止名为mycontainer的容器。

    4. 启动容器

  • 命令:docker start [OPTIONS] CONTAINER [CONTAINER...]

  • 示例:docker start mycontainer 启动名为mycontainer的容器。

    5. 重启容器

  • 命令:docker restart [OPTIONS] CONTAINER [CONTAINER...]

  • 示例:docker restart mycontainer 重启名为mycontainer的容器。

    6. 删除容器

  • 命令:docker rm [OPTIONS] CONTAINER [CONTAINER...]

  • 示例:docker rm mycontainer 删除名为mycontainer的容器(需要先停止容器)。

  • 强制删除:docker rm -f mycontainer

    7. 进入容器

  • 命令:docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

  • 示例:docker exec -it mycontainer bash 进入名为mycontainer的容器并启动bash。

    8. 查看容器日志

  • 命令:docker logs [OPTIONS] CONTAINER

  • 示例:docker logs mycontainer 查看名为mycontainer的容器的日志。

    9. 查看容器内运行的进程

  • 命令:docker top CONTAINER

  • 示例:docker top mycontainer 查看名为mycontainer的容器内运行的进程。

(三)其他常用命令

  1. 查看Docker版本信息

  • 命令:docker version

    2. 登录Docker仓库

  • 命令:docker login

    3. 从Docker仓库推送镜像

  • 命令:docker push [OPTIONS] NAME[:TAG]

  • 示例:docker push myusername/myimage:latest

    4. 清理无用的镜像、容器和卷

  • 命令:docker system prune

    5. 查看Docker网络和卷

  • 网络列表:docker network ls

  • 卷列表:docker volume ls

二、Docker-composer 常用命令

Docker Compose 是 Docker 的一个服务编排工具,它允许用户通过 YAML 文件来定义多个容器的应用服务,并通过单个命令来启动、停止和管理这些服务。

1. 构建镜像

  • 命令:docker-compose build

  • 描述:根据 docker-compose.yml 文件中的配置,构建(或重新构建)服务所使用的镜像。

  • 示例:docker-compose build(构建所有服务镜像)

2. 启动服务

  • 命令:docker-compose up

  • 描述:创建并启动所有服务的容器。默认情况下,它会根据 docker-compose.yml 文件中的配置来创建服务、网络、卷等。

  • 选项:

    • -d:在后台运行容器。

    • --build:在启动容器之前先构建镜像。

    • <service_name>:仅启动指定的服务。

  • 示例:

    • docker-compose up -d(以后台模式启动所有服务)

    • docker-compose up -d mysql(以后台模式仅启动 mysql 服务)

3. 停止服务

  • 命令:docker-compose stop

  • 描述:停止正在运行的容器,但不会删除它们。

  • 选项:

    • -t:设置停止容器时的超时时间(默认为 10 秒)。

    • <service_name>:仅停止指定的服务。

  • 示例:

    • docker-compose stop(停止所有服务)

    • docker-compose stop -t 5 mysql(在 5 秒后停止 mysql 服务)

4. 重启服务

  • 命令:docker-compose restart

  • 描述:停止并重新启动容器。

  • 选项:

    • -t:设置停止容器时的超时时间(默认为 10 秒)。

    • <service_name>:仅重启指定的服务。

  • 示例:

    • docker-compose restart(重启所有服务)

    • docker-compose restart web(重启 web 服务)

5. 查看日志

  • 命令:docker-compose logs

  • 描述:查看服务容器的输出日志。

  • 选项:

    • -f:实时跟踪日志输出。

    • --no-color:不使用颜色来区分不同的服务输出。

    • <service_name>:仅查看指定服务的日志。

  • 示例:

    • docker-compose logs(查看所有服务的日志)

    • docker-compose logs -f web(实时跟踪 web 服务的日志)

6. 列出容器

  • 命令:docker-compose ps

  • 描述:列出所有由 docker-compose 管理的容器及其状态。

  • 示例:docker-compose ps

7. 清理环境

  • 命令:docker-compose down

  • 描述:停止并移除所有由 docker-compose 启动的容器、网络、卷和镜像(可选)。

  • 选项:

    • --volumes:移除与 Compose 项目相关的所有卷。

    • --rmi:移除与服务相关的镜像(可选值为 all 或 local)。

  • 示例:

    • docker-compose down(停止并移除所有容器、网络、卷)

    • docker-compose down --volumes --rmi all(停止并移除所有容器、网络、卷和镜像)

8. 执行命令

  • 命令:docker-compose exec

  • 描述:在已运行的容器中执行命令。

  • 示例:docker-compose exec web bash(在 web 服务的容器中启动 bash)

9. 运行一次性命令

  • 命令:docker-compose run

  • 描述:在指定服务上运行一个一次性命令,然后退出。

  • 选项:

    • --rm:命令执行完成后自动移除容器。

    • -d:后台运行容器。

  • 示例:docker-compose run --rm web python manage.py migrate(在 web 服务中运行迁移命令,执行完成后删除容器)