跳到主要内容

Docker 常用命令

介绍

Docker 是一个开源的容器化平台,允许开发者将应用程序及其依赖打包到一个轻量级、可移植的容器中。通过 Docker,您可以轻松地在不同的环境中部署和运行应用程序。为了有效地使用 Docker,掌握一些常用命令是必不可少的。

本文将介绍 Docker 中最常用的命令,帮助您快速上手并管理容器、镜像、网络和卷等资源。


Docker 常用命令

1. 管理镜像

镜像是 Docker 容器的基础。以下是一些常用的镜像管理命令:

  • 拉取镜像
    使用 docker pull 命令从 Docker Hub 或其他镜像仓库拉取镜像。

    bash
    docker pull ubuntu:latest

    输出示例:

    latest: Pulling from library/ubuntu
    Digest: sha256:...
    Status: Downloaded newer image for ubuntu:latest
  • 列出本地镜像
    使用 docker images 查看本地已下载的镜像。

    bash
    docker images

    输出示例:

    REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
    ubuntu latest 123456789abc 2 weeks ago 72.8MB
  • 删除镜像
    使用 docker rmi 删除不再需要的镜像。

    bash
    docker rmi ubuntu:latest

    输出示例:

    Untagged: ubuntu:latest
    Deleted: sha256:...
提示

删除镜像前,请确保没有容器正在使用该镜像。


2. 管理容器

容器是 Docker 的核心概念。以下是一些常用的容器管理命令:

  • 运行容器
    使用 docker run 启动一个新容器。

    bash
    docker run -it ubuntu:latest /bin/bash

    这将启动一个交互式终端并进入容器的 Bash shell。

  • 列出运行中的容器
    使用 docker ps 查看当前正在运行的容器。

    bash
    docker ps

    输出示例:

    CONTAINER ID   IMAGE           COMMAND       CREATED        STATUS        PORTS     NAMES
    123456789abc ubuntu:latest "/bin/bash" 5 minutes ago Up 5 minutes my_container
  • 列出所有容器
    使用 docker ps -a 查看所有容器(包括已停止的)。

    bash
    docker ps -a
  • 停止容器
    使用 docker stop 停止正在运行的容器。

    bash
    docker stop my_container
  • 删除容器
    使用 docker rm 删除已停止的容器。

    bash
    docker rm my_container
警告

删除容器时,请确保容器已停止,否则需要使用 docker rm -f 强制删除。


3. 管理网络

Docker 提供了强大的网络功能,允许容器之间进行通信。以下是一些常用的网络管理命令:

  • 列出网络
    使用 docker network ls 查看所有 Docker 网络。

    bash
    docker network ls

    输出示例:

    NETWORK ID     NAME      DRIVER    SCOPE
    123456789abc bridge bridge local
  • 创建网络
    使用 docker network create 创建一个新的网络。

    bash
    docker network create my_network
  • 连接容器到网络
    使用 docker network connect 将容器连接到指定网络。

    bash
    docker network connect my_network my_container

4. 管理卷

卷是 Docker 中用于持久化数据的一种机制。以下是一些常用的卷管理命令:

  • 创建卷
    使用 docker volume create 创建一个新的卷。

    bash
    docker volume create my_volume
  • 列出卷
    使用 docker volume ls 查看所有卷。

    bash
    docker volume ls

    输出示例:

    DRIVER    VOLUME NAME
    local my_volume
  • 删除卷
    使用 docker volume rm 删除不再需要的卷。

    bash
    docker volume rm my_volume

实际案例

案例 1:运行一个 Web 服务器

假设您想运行一个 Nginx Web 服务器,并将其端口映射到主机的 8080 端口。

bash
docker run -d -p 8080:80 --name my_nginx nginx
  • -d:以守护进程模式运行容器。
  • -p 8080:80:将主机的 8080 端口映射到容器的 80 端口。
  • --name my_nginx:为容器指定一个名称。

访问 http://localhost:8080,您将看到 Nginx 的欢迎页面。


案例 2:使用卷持久化数据

假设您想运行一个 MySQL 数据库,并将数据存储在 Docker 卷中。

bash
docker run -d --name my_mysql -v mysql_data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=mysecretpassword mysql
  • -v mysql_data:/var/lib/mysql:将容器的 /var/lib/mysql 目录挂载到名为 mysql_data 的卷中。
  • -e MYSQL_ROOT_PASSWORD=mysecretpassword:设置 MySQL 的 root 用户密码。

总结

通过本文,您已经学习了 Docker 的常用命令,包括管理镜像、容器、网络和卷的基本操作。这些命令是使用 Docker 的基础,掌握它们将帮助您更高效地管理和部署容器化应用。


附加资源


练习

  1. 拉取一个 Redis 镜像并运行一个 Redis 容器。
  2. 创建一个自定义网络,并将两个容器连接到该网络。
  3. 使用卷持久化 PostgreSQL 数据库的数据。

通过完成这些练习,您将进一步巩固对 Docker 命令的理解。