docker学习记录
2022-11-07 16:44:01 0 举报
AI智能生成
登录查看完整内容
docker学习记录
作者其他创作
大纲/内容
UnionFS(联合文件系统Union File System)
是什么
docker镜像加载原理
为什么镜像要分层
镜像
docker commit 提交容器副本使之成为一个新的镜像
docker commit -m=\"描述信息\" -a=\"作者信息\" 容器ID 创建的目标镜像名:[标签名]
镜像commit
子主题
1.数据卷可在容器间共享或重用
2.卷中的更改可以直接生效
3.数据卷中的更改不会包含在镜像的更新中
4.数据卷的生命周期一直持续到没有容器使用它为止
特点
docker run -it -v /宿主机绝对路径:/容器内目录 镜像名
(只读)docker run -it -v /宿主机绝对路径:/容器内路径:ro 镜像名
直接命令
1、创建一个Dockerfile文件,写入内容
2、生成镜像:docker build -f dockerfile绝对路径 -t 镜像名 .
3、运行容器,通过docker inspect 容器id可以看到自动挂载的宿主机地址
Dockerfile添加
数据卷添加
容器挂载数据卷,其他容器通过挂载这个父容器实现数据共享,这个容器就是数据卷容器
1、以一个配置了数据卷镜像生成挂载了数据卷的容器yxh1
2、以此镜像生成容器yxh2时加上--volumes-from参数eg: docker run -it --name yxh2 --volumes-from yxh1 centos/volumes
容器间传递共享:--volumes-from
数据卷容器
容器数据卷(date volume)
构建docker镜像的构建文件,是有一系列命令和参数构成的脚本
1、指令都为大写且后面要跟至少一个参数
2、指令从上到下按顺序执行
3、#表示注释
1、docker从基础镜像运行一个容器
2、执行一条指令对容器修改
3、类似docker commit提交一个新的镜像
4、基于刚提交的镜像运行下一个容器
5、执行下一条指令
Dockerfile执行的大致流程
4、每条指令都会创建一个新的镜像层,并提交
基础知识
基础镜像,当前镜像是基于哪个镜像的
FROM
镜像维护者的姓名和邮箱地址
MAINTAINER
容器构建时需要执行的命令
RUN
当前容器对外暴露的端口
EXPOSE
指定创建容器后,终端默认登录时的工作目录
WORKDIR
构建镜像的过程中设置环境变量
ENV
将宿主机目录下的文件拷贝进镜像,且会自动处理URL和解压tar压缩包
ADD
COPY source target
COPY [\"source\
拷贝文件和目录到镜像中
COPY
容器数据卷
VOLUME
指定容器启动时要执行的命令
Dockerfile中可以有多个CMD,但只有最后一个会生效,而且会被dockers run之后的参数替换
CMD
和CMD一样,指定容器启动时要执行的命令
CMD只能有一个,且会被覆盖,ENTRYPOINT有多个会追加
ENTRYPOINT
父镜像被子镜像继承后,父镜像的ONBUILD会被触发
ONBUILD
保留字指令
Dockerfile
优雅的使用 Dockerfile 定制镜像
安装
1、从本地寻找镜像
2、有就以该镜像为模板生产容器实例运行
3、没有就去云端下载镜像到本地,然后执行流程2
docker run helloword流程
1、虚拟机多了一层hypevisor(virtaul machine monitor 虚拟机监视器),管理虚拟化的硬件资源
2、虚拟机里有一个完整的操作系统,加载操作系统比较耗时耗资源。而docker和宿主机共享操作系统
为什么比虚拟机快
原理
docker version
docker info
docker --help
帮助命令
docker images
docker search [OPTION] 镜像名字
docker pull 镜像名字[:tag]
docker rmi 镜像名字/镜像id
docker history 镜像id
镜像命令
docker run [OPTION] image [COMMEND] [ARG…]
新建并启动容器
docker ps [OPTION]
列出所有容器
停止退出exit
ctrl+P+Q不停止退出
退出容器
docker start 容器id/容器名
启动容器
docker restart 容器id/容器名
重启容器
docker stop 容器id/容器名
停止容器
docker kill 容器id/容器名
强制停止容器
docker rm 容器id/容器名
删除容器
docker run -d 容器名
启动守护式容器
docker logs -f -t --tail 容器ID
查看容器日志
docker top 容器id
查看容器内运行的进程
docker inspect 容器id
查看容器内部细节
在容器外执行容器内命令:docker exec -it 容器ID 命令
直接进入容器内:docker attach 容器id
进入正在运行的容器,并以命令行交互
docker cp 容器ID:容器内路径 目的主机路径
从docker拷贝文件到主机上
重要命令
停止所有容器
删除所有容器
删除所有镜像
复合命令
查看容器占用
容器命令
常用命令
Docker资源(CPU/内存/磁盘IO/GPU)限制与分配指南
将docker容器保存为 tar 包
将镜像保存为.tar文件
从 tar 包导入docker镜像
导入导出
Docker-Compose配置文件示例
docker
收藏
0 条评论
回复 删除
下一页