Docker 常用命令
介绍
Docker 是一个开源的容器化平台,允许开发者将应用程序及其依赖打包到一个轻量级、可移植的容器中。通过 Docker,您可以轻松地在不同的环境中部署和运行应用程序。为了有效地使用 Docker,掌握一些常用命令是必不可少的。
本文将介绍 Docker 中最常用的命令,帮助您快速上手并管理容器、镜像、网络和卷等资源。
Docker 常用命令
1. 管理镜像
镜像是 Docker 容器的基础。以下是一些常用的镜像管理命令:
-
拉取镜像
使用docker pull
命令从 Docker Hub 或其他镜像仓库拉取镜像。bashdocker pull ubuntu:latest
输出示例:
latest: Pulling from library/ubuntu
Digest: sha256:...
Status: Downloaded newer image for ubuntu:latest -
列出本地镜像
使用docker images
查看本地已下载的镜像。bashdocker images
输出示例:
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 123456789abc 2 weeks ago 72.8MB -
删除镜像
使用docker rmi
删除不再需要的镜像。bashdocker rmi ubuntu:latest
输出示例:
Untagged: ubuntu:latest
Deleted: sha256:...
删除镜像前,请确保没有容器正在使用该镜像。
2. 管理容器
容器是 Docker 的核心概念。以下是一些常用的容器管理命令:
-
运行容器
使用docker run
启动一个新容器。bashdocker run -it ubuntu:latest /bin/bash
这将启动一个交互式终端并进入容器的 Bash shell。
-
列出运行中的容器
使用docker ps
查看当前正在运行的容器。bashdocker 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
查看所有容器(包括已停止的)。bashdocker ps -a
-
停止容器
使用docker stop
停止正在运行的容器。bashdocker stop my_container
-
删除容器
使用docker rm
删除已停止的容器。bashdocker rm my_container
删除容器时,请确保容器已停止,否则需要使用 docker rm -f
强制删除。
3. 管理网络
Docker 提供了强大的网络功能,允许容器之间进行通信。以下是一些常用的网络管理命令:
-
列出网络
使用docker network ls
查看所有 Docker 网络。bashdocker network ls
输出示例:
NETWORK ID NAME DRIVER SCOPE
123456789abc bridge bridge local -
创建网络
使用docker network create
创建一个新的网络。bashdocker network create my_network
-
连接容器到网络
使用docker network connect
将容器连接到指定网络。bashdocker network connect my_network my_container
4. 管理卷
卷是 Docker 中用于持久化数据的一种机制。以下是一些常用的卷管理命令:
-
创建卷
使用docker volume create
创建一个新的卷。bashdocker volume create my_volume
-
列出卷
使用docker volume ls
查看所有卷。bashdocker volume ls
输出示例:
DRIVER VOLUME NAME
local my_volume -
删除卷
使用docker volume rm
删除不再需要的卷。bashdocker volume rm my_volume
实际案例
案例 1:运行一个 Web 服务器
假设您想运行一个 Nginx Web 服务器,并将其端口映射到主机的 8080 端口。
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 卷中。
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 的基础,掌握它们将帮助您更高效地管理和部署容器化应用。
附加资源
- Docker 官方文档
- Docker Hub:查找和下载 Docker 镜像。
- Docker 命令参考:查看所有 Docker 命令的详细说明。
练习
- 拉取一个 Redis 镜像并运行一个 Redis 容器。
- 创建一个自定义网络,并将两个容器连接到该网络。
- 使用卷持久化 PostgreSQL 数据库的数据。
通过完成这些练习,您将进一步巩固对 Docker 命令的理解。