docker容器技术--镜像

Docker 安装

  • Docker 是一个开源的应用容器引擎,主要利用 linux 内核 namespace 实现沙盒隔离,用 cgroup 实现资源限制。
  • Docker 支持三种不同的镜像层次存储的 drivers: aufs、devicemapper、btrfs ;
    在这里插入图片描述
  • 安装docker和相关依赖性
    在这里插入图片描述
  • 打开docker服务
  • 通过查看docker宿主机的信息来确定docker是否安装好
    在这里插入图片描述
  • 在安装好docker后,linux系统会为docker容器分配一个ip,利用ip addr中查看docker0的ip
    在这里插入图片描述

docker的管理

# docker load -i ubuntu.tar  导入镜像
# docker run -it --name vm1 ubuntu bash 创建容器
# docker ps -a 查看容器状态
# docker attach vm1 连接容器
# docker top vm1 查看容器进程
# docker logs vm1 查看容器指令输出 -f 参数可以实时查看
# docker inspect vm1 查看容器详情
# docker stats vm1 查看容器资源使用率
# docker diff vm1 查看容器修改
# docker run -d --name vm1 ubuntu bash -c "while true; do echo westos; sleep 1; done" 后台运行
# docker stop vm1 停止容器
# docker start vm1 启动容器
# docker kill vm1 强制干掉容器
# docker restart vm1 重启容器
# docker pause/unpause vm1 暂停/恢复容器
# docker rm vm1 删除容器
# docker export vm1 > vm1.tar 导出容器
# docker import vm1.tar image 导入容器为镜像 image
# docker rmi ubuntu 删除镜像

在这里插入图片描述

镜像管理

  • 镜像的分层结构
    在这里插入图片描述
  • 共享宿主机的kernel
  • base镜像提供的是最小的Linux发行版
  • 同一docker主机支持运行多种Linux发行版
  • 采用分层结构的最大好处是:共享资源
  • Copy-on-Write 可写容器层
  • 容器层以下所有镜像层都是只读的
  • docker从上往下依次查找文件
  • 容器层保存镜像变化的部分,并不会对镜像本身进行任何修改
  • 一个镜像最多127层
  • 镜像的构建
  • docker commit 构建新镜像三部曲
  • 运行容器
  • 修改容器
  • 将容器保存为新的镜像
  • 镜像的缺点
  • 效率低、可重复性弱、容易出错
  • 使用者无法对镜像进行审计,存在安全隐患

示例

  • 搭建一个网页版2048小游戏
  • 导入镜像game2048.tar
    在这里插入图片描述
  • 查看镜像已经导入
    在这里插入图片描述
  • 后台运行镜像创建容器,并指定映射端口[80(容器内):80(容器外)]
    在这里插入图片描述
  • 在本机浏览器中输入容器网址ip,在网页可以看到小游戏界面
    在这里插入图片描述
  • 查看容器状态
    在这里插入图片描述
  • 利用docker创建一个交互式容器 ubuntu 并进行测试
  1. 在docker中安装ubuntu:docker load -i ubuntu.tar
    在这里插入图片描述
  2. 查看docke的镜像: docker images
    在这里插入图片描述
  3. 运行ubutun:docker run -it --name vm2 ubuntu
    ubuntu这是一个系统,查看其内核:uname -r 是和物理机共用一个内核的,而且ip show 会看到自己生成一个ip–>按ctrl+q+p退出
    真机内核:在这里插入图片描述
    ubuntu内核:
    在这里插入图片描述
  4. 查看ip:ip addr show
    在这里插入图片描述
  5. 此时只有进入的端口,没有出去的,所以要安装桥接:(在物理机上)查看桥接软件:rpm -qf /sbin/brctl
    在这里插入图片描述
  6. 安装:yum install -y bridge-utils-1.5-9.el7.x86_64
    在这里插入图片描述
  7. 此时再查看:brctl show
    在这里插入图片描述
  8. 查看docker状态,已经有vm2: docker ps
    在这里插入图片描述
  9. 当退出docker进程,重新进入时: docker attach vm2
    –> 创建文件以做测试,–> ctrl+d关闭退出
    在这里插入图片描述
  10. 此时查看vm2进程是没有的,因为是exit退出,处于非活跃状态:docker ps
  11. 查看非活跃状态时会发现vm2:docker ps -a
    在这里插入图片描述
  12. 这时要重新进入vm2,需要先打开:docker start vm2
  13. 进入:docker attach vm2
    在这里插入图片描述
  14. 删除docker的vm2进程:docker rm vm2
  15. 用-a查看,此时也没有了vm2进程: docker ps -a
    在这里插入图片描述
  16. 但是镜像还存在: docker images
  17. 重新在docker中运行加载ubuntu: docker run -it --name vm2 ubuntu
    –>此时进入后查看ls,文件没有了。
    在这里插入图片描述
  18. 查看ubuntu镜像存在:docker images ubuntu
  19. 查看ubuntu的历史分层结构: docker history ubuntu
    在这里插入图片描述
  20. 重新进入ubuntu:docker attach vm2–>创建文件做测试–>ctrl+d关闭退出
    在这里插入图片描述
  21. 查看,此时vm2进程还存在,处于非活跃状态: docker ps -a
    在这里插入图片描述
  22. 重新给ubuntu创建镜像为ubuntu:v1: docker commit -m "add files" vm2 ubuntu:v1
  23. 查看创建的镜像已存在: docker images
    在这里插入图片描述
  24. 删除vm2:docker rm vm2
  25. 运行 ubuntu:v1: docker run -it --name vm2 ubuntu:v1–>ls查看,文件还存在–>删除创建的文件 -->ctrl+d关闭退出
    在这里插入图片描述
    在这里插入图片描述
  26. 重新给ubuntu创建镜像为ubuntu:v2: docker commit vm2 ubuntu:v1
  27. 查看创建的镜像已存在: docker images
    在这里插入图片描述
  28. 删除vm2:docker rm vm2
  29. 运行 ubuntu:v2: docker run -it --name vm2 ubuntu:v1–>ls查看,文件不存在
    在这里插入图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值