当前位置: 首页 > news >正文

云计算实训35——镜像的迁移、镜像的创建、使用docker查看ip、端口映射、容器持久化

一、镜像的迁移

打包镜像

docker save -o 文件名称 镜像名:标签

#查看帮助命令[root@docker ~]#docker --help#查看save打包用法[root@docker ~]#docker  save --help#查看原有镜像[root@docker ~]#docker images#将镜像打包[root@docker ~]#docker save -o centos.tar centos:latest #表示将名为 "centos:latest" 的 Docker 镜像保存到名为 "centos.tar" 的 tar 文件中#查看
[root@docker ~]#ls
anaconda-ks.cfg  centos.tar注:可以将tar作为备份也可以发给其他用户

删除镜像

docker rmi 镜像名/镜像id

#删除
[root@docker ~]# docker rmi centos:latest
Error response from daemon: conflict: unable to remove repository reference "centos:latest" (must force) - container 329f38b9b590 is using its referenced image 5d0da3dc9764#发现删除不了,因为容器正在使用#先删除容器docker rm 容器名/容器id[root@docker ~]#docker rm c0#再删除镜像[root@docker ~]#docker rmi centos:latest#查看
[root@docker ~]# docker images
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE#此时镜像已经不存在

引入镜像

从tar中引入镜像

#查看load用法[root@docker ~]# docker  load --help#引入[root@docker ~]# docker load  -i centos.tar 
74ddd0ec08fa: Loading layer  238.6MB/238.6MB
Loaded image: centos:latest#查看[root@docker ~]# docker image ls
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
centos       latest    5d0da3dc9764   2 years ago   231MB#发现centos.tar镜像已被成功引入

导出文件

从容器导出tar包

#查看帮助文档docker --helpdocker export --help#导出[root@docker ~]# docker export -o centos_yum.tar c0
[root@docker ~]# ls
anaconda-ks.cfg  centos.tar  centos_yum.tar

导入镜像

从tar包导入镜像

#查看帮助文档docker --helpdocker import --help#导入[root@docker ~]# docker import -m yum centos_yum.tar centos:yum
sha256:82ca12d9b058e50383fbb8664864a20c6efb9316212912ed1cca8255b7898b62#查看镜像
[root@docker ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
centos       yum       82ca12d9b058   6 seconds ago   261MB
centos       latest    5d0da3dc9764   2 years ago     231MB

二、创建镜像

使用centos:yum镜像创建容器

#停止容器c0
[root@docker ~]# docker stop c0
c0
#查看容器进程
[root@docker ~]# docker ps --all
CONTAINER ID   IMAGE           COMMAND       CREATED          STATUS                        PORTS     NAMES
4b50f342204b   centos:latest   "/bin/bash"   21 minutes ago   Exited (127) 10 minutes ago             c0
#删除容器
[root@docker ~]# docker rm c0
c0
#查看容器进程
[root@docker ~]# docker ps --all
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
#创建容器
[root@docker ~]# docker run -it --name c0 centos:yum /bin/bash
[root@d44357a8c389 /]# ls /etc/yum.repos.d/
CentOS-Base.repo   epel-playground.repo       epel-testing.repo
epel-modular.repo  epel-testing-modular.repo  epel.repo

创建httpd镜像

要求:创建一个镜像,包含httpd服务,名称 centos,版本为http

#创建容器
[root@docker ~]# docker run -it --name c0 centos:yum /bin/bash
[root@d44357a8c389 /]# ls /etc/yum.repos.d/
CentOS-Base.repo   epel-playground.repo       epel-testing.repo
epel-modular.repo  epel-testing-modular.repo  epel.repo#下载httpd
[root@d44357a8c389 /]# yum -y install httpd#退出[root@d44357a8c389 /]# exit
exit#查看容器[root@docker ~]# docker ps --all
CONTAINER ID   IMAGE        COMMAND       CREATED          STATUS                      PORTS     NAMES
d44357a8c389   centos:yum   "/bin/bash"   13 minutes ago   Exited (0) 10 seconds ago             c0#将容器导出为tar包[root@docker ~]# docker export -o centos_httpd.tar c0#查看[root@docker ~]# ls
anaconda-ks.cfg  centos_httpd.tar  centos.tar  centos_yum.tar#从tar包导入镜像[root@docker ~]# docker import -m httpd centos_httpd.tar centos:httpd
sha256:e9a1ee725b4333e5838e7744685bdc54d276947839d4ff00376faae7124191eb#查看镜像[root@docker ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
centos       httpd     e9a1ee725b43   8 seconds ago    311MB
centos       yum       82ca12d9b058   18 minutes ago   261MB
centos       latest    5d0da3dc9764   2 years ago      231MB

三、使用docker查看ip

#方法1:进入到容器,使用指令docker attach 容器名/容器idyum -y install iprouteyum -y install net-toolsip a sifconfig#方法2: 使用docker指令inspectdocker inspect 容器名/容器id#方法3:在外部调用指令docker exec 容器名/容器id ip adocker exec 容器名/容器id ifconfig

四、端口映射

docker run -it --name 容器名/容器id -p宿主机端口:容器端口 镜像名:标签 交互路径

#将容器中的80端口映射到宿主机(docker主机)[root@docker ~]# docker run -it --name c0 -p80:80/tcp centos:httpd /bin/bash注:若随机为容器指定映射端口,映射端口>=32768#随后可以直接在浏览器访问docker

五、容器持久化

做挂载操作

docker run -it --name 镜像名:镜像id -v /本地目录:/容器的目录 镜像名:标签 启动路径

#docker只是一个工具,不需要保存数据,不需要做持久化,若要做持久化,需要在宿主机和容器间创建一个共享卷#使用 centos:httpd 镜像创建一个名为 c0 的容器,并分配一个交互式终端。-v /source:/data 将本地目录 /source 挂载到容器内的 /data 目录。[root@docker ~]#docker run -it --name c0 -v /source:/data centos:httpd /bin/bash


http://www.mrgr.cn/news/11392.html

相关文章:

  • 什么是激光雷达?激光雷达的构成与分类
  • springboot后端开发-自定义参数校验器
  • 2024年消防设施操作员考试题库及答案
  • docker创建数据库容器并映射存储数据
  • 学习MyBatis-Plus
  • ubuntu系统中通过java程序拷贝文件数据到U盘,在win11中查看文件时间相差8小时
  • P8436 【模板】边双连通分量
  • 【JVM】OOM与调优(二)
  • 【C#】【EXCEL】Bumblebee/Classes/ExEnums.cs
  • 基层医疗云HIS系统源码:云计算、大数据等现代信息技术研发
  • ue5远程渲染和本地渲染的区别,及云渲染的联系
  • Linux——驱动——杂项设备
  • 文件.硬盘.IO
  • 服务器被渗透的表现及检测方法
  • CentOS7 mysql-cluster安装与配置
  • JMeter Plugins之内网插件问题解决
  • 二十三种模式之单例模式(基础了解)
  • coffee小程序怎么做 咖啡店小程序系统开发制作方法
  • 文件上传漏洞(看过就能学会)
  • Circuitjs 内存模块的使用