Docker 基础使用¶
基础概念¶
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
常用命令¶
镜像管理¶
搜索镜像¶
- 命令:
docker search [OPTIONS] TERM - 参数说明:
--limit: 限制搜索结果数量- 使用示例:
拉取镜像¶
- 命令:
docker pull [OPTIONS] NAME[:TAG|@DIGEST] - 参数说明:
-a: 拉取所有标签的镜像-q: 静默模式,不输出拉取进度- 使用示例:
查看镜像¶
- 命令:
docker images [OPTIONS] [REPOSITORY[:TAG]] - 参数说明:
-a: 显示所有镜像-q: 只显示镜像ID- 使用示例:
构建镜像¶
- 命令:
docker build [OPTIONS] PATH | URL - 参数说明:
-t: 指定镜像名称和标签-f: 指定Dockerfile路径--no-cache: 构建时不使用缓存--build-arg: 设置构建时的变量- 使用示例:
删除镜像¶
- 命令:
docker rmi [OPTIONS] IMAGE [IMAGE...] - 参数说明:
-f: 强制删除镜像- 使用示例:
导出镜像¶
- 命令:
docker save [OPTIONS] IMAGE [IMAGE...] - 参数说明:
-o: 指定输出文件名- 使用示例:
导入镜像¶
- 命令:
docker load [OPTIONS] - 参数说明:
-i: 指定输入文件-q: 静默模式- 使用示例:
标记镜像¶
- 命令:
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG] - 使用示例:
容器管理¶
运行容器¶
- 命令:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...] - 常用参数说明:
-d: 后台运行容器-it: 交互式运行容器-p: 端口映射,格式为 hostPort:containerPort-v: 挂载卷,格式为 hostPath:containerPath-e: 设置环境变量--name: 指定容器名称--rm: 容器退出时自动删除--network: 指定网络模式- 使用示例:
# 后台运行nginx容器并映射端口 docker run -d -p 8080:80 --name my-nginx nginx # 运行交互式容器 docker run -it --name my-ubuntu ubuntu:20.04 /bin/bash # 运行容器并挂载数据卷 docker run -d -p 3306:3306 -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root --name mysql mysql:5.7 # 运行后自动删除的容器 docker run --rm -it alpine:latest sh
查看容器¶
- 命令:
docker ps [OPTIONS] - 参数说明:
-a: 显示所有容器(包括停止的)-q: 只显示容器ID-l: 显示最近创建的容器- 使用示例:
停止容器¶
- 命令:
docker stop [OPTIONS] CONTAINER [CONTAINER...] - 参数说明:
-t: 停止前等待的秒数- 使用示例:
启动容器¶
- 命令:
docker start [OPTIONS] CONTAINER [CONTAINER...] - 参数说明:
-i: 启动时连接STDOUT/STDERR并返回- 使用示例:
重启容器¶
- 命令:
docker restart [OPTIONS] CONTAINER [CONTAINER...] - 参数说明:
-t: 重启前等待的秒数- 使用示例:
删除容器¶
- 命令:
docker rm [OPTIONS] CONTAINER [CONTAINER...] - 参数说明:
-f: 强制删除正在运行的容器-v: 删除与容器关联的卷- 使用示例:
进入容器¶
- 命令:
docker exec [OPTIONS] CONTAINER COMMAND [ARG...] - 参数说明:
-i: 保持STDIN开启-t: 分配一个伪终端-d: 分离模式,后台运行-u: 指定用户- 使用示例:
查看容器日志¶
- 命令:
docker logs [OPTIONS] CONTAINER - 参数说明:
-f: 跟踪日志输出-t: 显示时间戳--tail: 显示最后N行日志- 使用示例:
查看容器资源使用情况¶
- 命令:
docker stats [OPTIONS] [CONTAINER...] - 参数说明:
-a: 显示所有容器的统计信息- 使用示例:
网络管理¶
创建网络¶
- 命令:
docker network create [OPTIONS] NETWORK - 参数说明:
--driver: 指定网络驱动--subnet: 指定子网--gateway: 指定网关- 使用示例:
查看网络¶
- 命令:
docker network ls [OPTIONS] - 使用示例:
删除网络¶
- 命令:
docker network rm NETWORK [NETWORK...] - 使用示例:
数据卷管理¶
创建数据卷¶
- 命令:
docker volume create [OPTIONS] [VOLUME] - 使用示例:
查看数据卷¶
- 命令:
docker volume ls [OPTIONS] - 使用示例:
删除数据卷¶
- 命令:
docker volume rm [OPTIONS] VOLUME [VOLUME...] - 使用示例:
系统管理命令¶
查看Docker系统信息¶
- 命令:
docker info - 使用示例:
查看Docker版本¶
- 命令:
docker version - 使用示例:
清理系统¶
- 命令:
docker system prune [OPTIONS] - 参数说明:
-a: 删除所有未使用的镜像-f: 强制删除,不提示确认- 使用示例:
查看磁盘使用情况¶
- 命令:
docker system df [OPTIONS] - 使用示例:
实用示例¶
启动常用服务¶
-
启动MySQL:
-
启动Redis:
-
启动Nginx:
使用Docker Compose简化多容器管理¶
创建 docker-compose.yml 文件:
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html
depends_on:
- db
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test
ports:
- "3306:3306"
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
启动服务:
停止服务:
标签:Docker, 容器编排