Docker 学习笔记
第一章:镜像管理
命令 | 描述 | 常用参数 |
---|---|---|
docker search | 搜索Docker Hub上的镜像 | --limit 限制搜索结果数量 |
docker pull | 下载镜像到本地 | -a 下载所有标签版本 |
docker images | 列出本地镜像 | -q 只显示镜像ID |
docker rmi | 删除本地镜像 | -f 强制删除 |
补充细节:
- 删除镜像前需确保没有容器在使用该镜像
- 使用
docker image prune
可清理悬空镜像 - 镜像命名规范:
[仓库地址]/[命名空间]/[镜像名]:[标签]
第二章:容器操作
命令 | 描述 |
---|---|
docker run | 创建并启动容器 |
docker ps | 查看容器列表 |
docker stop | 停止运行中的容器 |
docker start | 启动已停止的容器 |
docker restart | 重启容器 |
docker stats | 查看容器资源使用情况 |
docker logs | 查看容器日志 |
docker exec | 进入运行中的容器 |
docker rm | 删除容器 |
docker run
详细参数
1 |
|
常用参数:
-d
:后台运行(守护模式)--name
:指定容器名称-p
:端口映射(格式:主机端口:容器端口
)-e
:设置环境变量--restart
:重启策略(always|on-failure|unless-stopped
)--network
:指定网络-v
:数据卷/目录挂载
其他命令细节
进入容器:
1 |
|
查看容器:
docker ps -a
:查看所有容器(包括已停止的)docker ps -aq
:只显示容器ID
批量操作:
1 |
|
第三章:镜像保存与加载
命令 | 描述 |
---|---|
docker commit | 将容器保存为新镜像 |
docker save | 将镜像保存为tar文件 |
docker load | 从tar文件加载镜像 |
docker commit
示例:
1 |
|
镜像导出导入:
1 |
|
第四章:镜像分享
命令 | 描述 |
---|---|
docker login | 登录Docker Registry |
docker tag | 给镜像打标签 |
docker push | 推送镜像到Registry |
操作流程:
- 登录仓库:
docker login registry.example.com
- 重命名镜像:
docker tag 原镜像 新镜像名:标签
- 推送镜像:
docker push 新镜像名:标签
第五章:数据存储
挂载方式
- 目录挂载:
-v /host/path:/container/path
- 卷挂载:
-v volume_name:/container/path
卷管理
1 |
|
注意:
- 卷默认存储在
/var/lib/docker/volumes/
- 卷的生命周期独立于容器
第六章:网络管理
常用命令
1 |
|
容器连接网络
1 |
|
特点:
- 自定义网络支持DNS解析(容器名即主机名)
- 默认bridge网络不支持容器名解析
第七章:Docker Compose
基本命令
1 |
|
YAML文件结构
1 |
|
注意:
- 资源名称会添加
应用名_
前缀 down
命令可选参数:--rmi all
:删除相关镜像-v
:删除关联卷
第八章:Dockerfile
常用指令
指令 | 说明 | 示例 |
---|---|---|
FROM | 基础镜像 | FROM ubuntu:20.04 |
RUN | 执行命令 | RUN apt-get update |
CMD | 容器启动命令 | CMD ["python", "app.py"] |
EXPOSE | 声明暴露端口 | EXPOSE 8080 |
ENV | 设置环境变量 | ENV APP_HOME=/app |
COPY | 复制文件 | COPY . /app |
ADD | 复制+解压文件 | ADD app.tar.gz /app |
WORKDIR | 设置工作目录 | WORKDIR /app |
ENTRYPOINT | 容器入口点 | ENTRYPOINT ["java", "-jar"] |
VOLUME | 创建挂载点 | VOLUME /data |
USER | 指定运行用户 | USER appuser |
ARG | 构建参数 | ARG APP_VERSION=1.0 |
案例:
1 |
|
构建镜像
1 |
|