首页 > 其他分享 >镜像的迁移、镜像的创建、使用docker查看ip、端口映射、容器持久化

镜像的迁移、镜像的创建、使用docker查看ip、端口映射、容器持久化

时间:2024-08-26 12:54:32浏览次数:10  
标签:容器 tar centos ip 镜像 docker root

一、镜像的迁移

打包镜像

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 --help
 
docker export --help
 
#导出
 
[root@docker ~]# docker export -o centos_yum.tar c0
[root@docker ~]# ls
anaconda-ks.cfg  centos.tar  centos_yum.tar

导入镜像

从tar包导入镜像

#查看帮助文档
 
docker --help
 
docker 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 容器名/容器id
 
yum -y install iproute
 
yum -y install net-tools
 
ip a s
 
ifconfig
 
#方法2: 使用docker指令inspect
 
docker inspect 容器名/容器id
 
#方法3:在外部调用指令
 
docker exec 容器名/容器id ip a
 
docker 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

标签:容器,tar,centos,ip,镜像,docker,root
From: https://blog.csdn.net/ln2915275834/article/details/141552559

相关文章

  • docker根据挂载卷找对应容器
    要根据挂载的卷找到对应的容器,你可以使用dockerps命令结合grep来查找。但是请注意,Docker容器的挂载卷信息通常不会直接显示在dockerps的输出中。你可以通过dockerinspect命令获取更详细的信息。以下是一个使用dockerinspect和grep的命令行示例,用于查找挂载了特定卷的容器:......
  • 酒店IP广播对讲系统融合解决方案
    项目背景在当前的酒店行业中,客户对个性化和智能化服务的需求日益增长。传统的广播系统不仅功能单一,而且管理和维护成本较高。酒店广播系统能够实现远程控制、定时播放、音乐广播、紧急广播等功能,满足酒店多样化的广播需求。此外,随着物联网技术的发展,酒店广播系统还可以与酒店......
  • 世邦通信SPON IP网络对讲广播系统任意文件上传漏洞
    0x00漏洞编号暂无0x01危险等级高危0x02漏洞概述世邦通信SPONIP网络对讲广播系统采用领先的IPAudio™技术,将音频信号以数据包形式在局域网和广域网上进行传送,是一套纯数字传输系统。0x03漏洞详情漏洞类型:任意文件上传影响:上传恶意脚本简述:世邦通信SPONIP网络对讲广播......
  • 数字IP网络广播系统的特点和功能
    随着互联网数字化转型的发展大趋势,广播系统的主流方式也由传统模拟广播系统过渡到数字IP网络广播系统。数字IP网络公共广播,是将模拟音频信号数字编码,通过网络传输后,再由终端解码成模拟音频信号。可多路、单向或双向传输,局域网内延迟时间不超过100ms,并具有自动流量调整、声音补......
  • 超详细教程 | Hands-On 基于 Flagchip FC4150 MCAL-使用 GPT 模块定时喂狗
    简介    本文将详细介绍如何使用EB工具配置FlagchipFC4150MCAL使用GPT模块定时喂狗,并重点强调了配置GPT、WDG模块的过程以及对GPT、WDG模块的详细解释,关于mcu、port、dio、icu、adc、pwm模块可参考之前发布的博文。本次示例演示将会使用FTU4_CH0超......
  • 互联工厂数据交换标准:IPC-CFX
    大家好,我是Edison。全球电子制造主要集中在中国,面向未来工业4.0、中国制造2025的战略转型升级,互联互通是基础、数据是核心,如何从用户角度来定义设备加工数据的内容完整性、有效性、可扩展性将是工厂通讯连接交换的工作重点。IPC-CFX是什么?首先,解释下这两个缩写的意思:IPC是国际......
  • 自动生成依赖清单:pipreqs,Python项目的救星
    文章目录**自动生成依赖清单:pipreqs,Python项目的救星**背景:为何选择pipreqs?pipreqs是什么?如何安装pipreqs?库函数使用方法场景应用场景一:新项目初始化场景二:更新现有项目依赖场景三:排除特定库常见Bug及解决方案Bug1:找不到项目中的某些依赖Bug2:生成的依赖文件中包含错误......
  • docker无法拉取(pull)镜像Error response from daemon
    docker无法拉取(pull)镜像|校园网|内网|代理|Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2该博客的方法适用解决下列bugs:#Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutex......
  • Javascript之函数式编程
    一、是什么函数式编程是一种"编程范式"(programmingparadigm),一种编写程序的方法论主要的编程范式有三种:命令式编程,声明式编程和函数式编程相比命令式编程,函数式编程更加强调程序执行的结果而非执行的过程,倡导利用若干简单的执行单元让计算结果不断渐进,逐层推导复杂的运算......
  • JavaScript中的内存泄露
    一、是什么内存泄漏(Memoryleak)是在计算机科学中,由于疏忽或错误造成程序未能释放已经不再使用的内存并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,导致在释放该段内存之前就失去了对该段内存的控制,从而造成了内存的浪费程序的运行需要内存。只要程序提......