Docker命令
下载镜像
| 命令 | 命令 | 示例 |
|---|---|---|
docker search 镜像名 | 检索镜像 | docker search nginx |
docker pull 镜像名 | 下载镜像 | docker pull nginx |
docker images / docker image ls | 查看镜像列表 | / |
docker rmi 镜像名/IMAGE ID | 删除指定镜像 | docker rmi nginx / docker rmi e784f4560448 |
镜像名:
标签:版本(不写版本默认最新)
启动容器
| 命令 | 命令 | 示例 |
|---|---|---|
docker run 镜像名 | 运行一个新容器 | docker run nginx |
docker ps [-a] | 查看/查看所有 容器 | / |
docker stop 容器名/容器ID | 停止指定容器 | docker stop keen_blackwell |
docker start 容器名/容器ID | 启动指定容器 | docker start 592 |
docker restart 容器名/容器ID | 重启指定容器 | docker restart 592 |
docker stats 容器名/容器ID | 查看容器资源占用情况 | docker stats 592 |
docker logs 容器名/容器ID | 查看容器日志 | docker logs 592 |
docker exec -it 容器名/容器ID /bin/bash | 以交互模式进入容器内部 | docker exec -it mynginx /bin/bash |
docker rm [-f] 容器名/容器ID | (强制)删除指定容器 | docker rm [-f] 592 |
容器ID可不写全,只要能做到唯一确定即可。
[参数]:可写参数
参数详解

| 参数项 | 定义 | 举例 |
|---|---|---|
| CONTAINER ID | 容器ID(唯一) | eef32e954a0f |
| COMMAND | 使用的镜像名 | nginx |
| CREATED | 当前容器的启动命令 | “/docker-entrypoint.…” |
| STATUS | 启动时间 | 21 seconds ago |
| PORTS | 启动状态(UP:启动;Exited (0):停止) | Up 20 seconds |
| NAMES | 占用端口号 | 80/tcp |
| IMAGE | 应用容器名(随机) | boring_murdock |
命令详解
docker run [参数] 镜像名
常用参数:
-d:后台启动;--name:自定义容器名;-p:端口映射,例如:-p 88:80,其中88为外部端口,80为内部端口;-v:目录挂载,例如:-v /app/nghtml:/usr/share/nginx/html,其中冒号前为外部地址,后为内部地址;-e:设置环境变量--network:指定网络
如果想使用更多或查看可添加的参数,可以在命令结尾处添加
--help调出命令文档,
例如,使用docker run --help即可调出docker run的详细语法和参数

保存镜像
| 命令 | 作用 | 示例 |
|---|---|---|
docker commit -m "描述信息" 容器名/容器ID 新镜像名 | 提交容器变化打成一个新的镜像 | docker commit -m “update index.html” mynginx mynginx:v1.0 |
docker save -o 文件名.tar 镜像名 | 保存镜像为指定文件 | docker save -o mynginx.tar mynginx:v1.0 |
docker load -i 指定tar包名 | 加载镜像 | docker load -i mynginx.tar |
分享社区
| 命令 | 作用 | 示例 |
|---|---|---|
docker login | 登录 docker hub | / |
docker tag 原镜像名 新镜像名 | 重新给镜像打标签 | docker tag mynginx:v1.0 leifengyang/mynginx:v1.0 |
docker push 镜像名 | 推送镜像 | docker push leifengyang/mynginx:v1.0 |
$(docker命令):动态调用命令。
Docker存储
两种方式,注意区分:
- 目录挂载:
-v /app/nghtml:/usr/share/nginx/html - 卷映射:
-v ngconf:/etc/nginx
示例代码:
docker run -d -p 99:80 \
-v /app/nghtml:/usr/share/nginx/html \
-v ngconf:/etc/nginx \
--name app03 \
nginx
卷映射:-v ngconf:/etc/nginx,其中初始化以内部文件为准,且里外都可以修改
卷存储位置:/var/lib/docker/volumes/
docker volume 卷操作
docker volume 1s 列出所有卷
Docker网络
创建自定义网络,实现主机名作为稳定域名访问。
| 命令 | 作用 | 示例 |
|---|---|---|
docker network create 网络名 | 自定义网络 | docker network create mynet |
docker run --network 自定义网络名 镜像名 | 运行容器并使该容器加入指定网络 | docker run --network mynet nginx |
docker为每个容器分配唯一ip,使用容器ip+容器端口可以互相访问
ip由于各种原因可能会变化
Docker Compose
在日常使用中,我们往往不止会启用一个镜像,如果每次都需要手动去依次开启镜像,明显效率低下。
使用Compose,可以通过YAML文件来配置应用程序的服务,然后使用单个命令即可创建并启动所有服务。
常用命令:
| 命令 | 作用 | 示例 |
|---|---|---|
docker compose -f 指定compose文件名.yaml up -d | 后台启动指定 compose.yaml 文件 | docker compose -f compose.yaml up -d |
docker compose -f 指定compose文件名.yaml down | 关闭指定 compose.yaml 文件 | docker compose -f compose.yaml down |
具体语法详见官方参考:https://docs.docker.com/compose/compose-file/
示例:
name: myblog
services:
mysql:
container_name: mysql
image: mysql:8.0
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=123456
- MYSQL_DATABASE=wordpress
volumes:
- mysql-data:/var/lib/mysql
- /app/myconf:/etc/mysql/conf.d
restart: always
networks:
- blog
wordpress:
image: wordpress
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: mysql
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: 123456
WORDPRESS_DB_NAME: wordpress
volumes:
- wordpress:/var/www/html
restart: always
networks:
- blog
depends_on:
- mysql
volumes:
mysql-data:
wordpress:
networks:
blog:
特性:
- 增量更新
- 修改 Docker Compose 文件。重新启动应用。只会触发修改项的重新启动。
- 数据不删
- 默认就算down了容器,所有挂载的卷不会被移除。比较安全
Dockerfile
官方文档:https://docs.docker.com/reference/dockerfile/
| 常见指令 | 作用 |
|---|---|
| FROM | 指定镜像基础环境 |
| RUN | 运行自定义命令 |
| CMD | 容器启动命令或参数 |
| LABEL | 自定义标签 |
| EXPOSE | 指定暴露端口 |
| ENV | 环境变量 |
| ADD | 添加文件到镜像 |
| COPY | 复制文件到镜像 |
| ENTRYPOINT | 容器固定启动命令 |
| VOLUME | 数据卷 |
| USER | 指定用户和用户组 |
| WORKDIR | 指定默认工作目录 |
| ARG | 指定构建参数 |
推荐资料:
- Docker - 快速通关 (3h) (yuque.com)


















