docke进阶---镜像迁移、容器的ip地址、端口映射和持久化

1.镜像的迁移

1.镜像打包

#查看镜像有一个centos的镜像
[root@docker0 ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
centos       latest    5d0da3dc9764   2 years ago   231MB
3查看帮助文件
docker --help
save        Save one or more images to a tar archive (streamed to STDOUT by default)
#找到save,可以将镜像保存为一个tar包
#查看save使用方式
[root@docker0 ~]# docker save --helpUsage:  docker save [OPTIONS] IMAGE [IMAGE...]Save one or more images to a tar archive (streamed to STDOUT by default)Aliases:docker image save, docker saveOptions:-o, --output string   Write to a file, instead of STDOUT
#打包镜像
[root@docker0 ~]# docker save -o centos.tar centos:latest
#查看镜像包
[root@docker0 ~]# ls
anaconda-ks.cfg  centos.tar  initserver.sh
#可以将tar发送给其他用户或者做备份

2.镜像加载

[root@docker0 ~]# docker --help
import      Import the contents from a tarball to create a filesystem image
load        Load an image from a tar archive or STDIN
#查看load的用法
[root@docker0 ~]# docker load --helpUsage:  docker load [OPTIONS]Load an image from a tar archive or STDINAliases:docker image load, docker loadOptions:-i, --input string   Read from tar archive file, instead of STDIN-q, --quiet          Suppress the load output
#加载镜像
[root@docker0 ~]# docker load -i centos.tar 
74ddd0ec08fa: Loading layer  238.6MB/238.6MB
Loaded image: centos:latest

#查看镜像
[root@docker0 ~]# docker image ls
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
centos       latest    5d0da3dc9764   2 years ago   231MB

 停用关闭容器

docker stop c0 c1
docker rm c0 c1

删除镜像

docker rmi centos:latest

3.容器导出镜像

运行一个容器

[root@docker0 ~]# docker ps --all
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@docker0 ~]# docker run -it --name c0 centos:latest /bin/bash
[root@2d3ce2feba40 /]# 

 配置yum源

[root@2d3ce2feba40 ~]# rm -rf /etc/yum.repos.d/*
[root@2d3ce2feba40 ~]# cat /etc/redhat-release
CentOS Linux release 8.4.2105
[root@2d3ce2feba40 /]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

 查看yum源并建立缓存

[root@2d3ce2feba40 /]# ls /etc/yum.repos.d/
CentOS-Base.repo
[root@2d3ce2feba40 /]# yum clean all && yum makecache
Failed to set locale, defaulting to C.UTF-8
0 files removed
Failed to set locale, defaulting to C.UTF-8
CentOS-8.5.2111 - Base - mirrors.aliy 446 kB/s | 4.6 MB     00:10    
CentOS-8.5.2111 - Extras - mirrors.al  13 kB/s |  10 kB     00:00    
CentOS-8.5.2111 - AppStream - mirrors 303 kB/s | 8.4 MB     00:28    
Metadata cache created.

 创建一个yum源镜像

[root@docker0 ~]# docker export -o centos_yum.tar c0
[root@docker0 ~]# ls
anaconda-ks.cfg  centos.tar  centos_yum.tar  initserver.sh

下载一个epel源

[root@2d3ce2feba40 /]# yum -y install epel-release.noarch

 查看镜像会出现一个有yum的新镜像

[root@docker0 ~]# docker image ls
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
centos       yum       06a31e228ee1   39 seconds ago   260MB
centos       latest    5d0da3dc9764   2 years ago      231MB

 使用新镜像

[root@docker0 ~]# docker ps --all
CONTAINER ID   IMAGE           COMMAND       CREATED          STATUS                      PORTS     NAMES
2d3ce2feba40   centos:latest   "/bin/bash"   39 minutes ago   Exited (0) 13 minutes ago             c0
[root@docker0 ~]# docker rm c0
c0
[root@docker0 ~]# docker ps --all
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@docker0 ~]# docker run -it --name c0 centos:yum /bin/bash
[root@53017a519e3c /]# ls /etc/yum.repos.d/
CentOS-Base.repo   epel-playground.repo       epel-testing.repo
epel-modular.repo  epel-testing-modular.repo  epel.repo
[root@53017a519e3c /]# 

练习:制作一个httpd镜像

#查看运行的容器c0
[root@docker0 ~]# docker ps --all
CONTAINER ID   IMAGE        COMMAND       CREATED       STATUS                   PORTS     NAMES
53017a519e3c   centos:yum   "/bin/bash"   3 hours ago   Exited (0) 2 hours ago             c0
#删除c0
[root@docker0 ~]# docker rm c0
c0
[root@docker0 ~]# docker ps --all
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

 运行一个容器并进入容器

[root@docker0 ~]# docker run -it --name c100 centos:yum /bin/bash

 下载httpd

[root@66afe850d388 /]# yum -y install httpd
centos:httpd

 修改index.html

[root@66afe850d388 /]#echo "aaabbbccc" > /var/www/html/index.html

启动服务

[root@66afe850d388 /]# httpd -k start
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message

访问

[root@66afe850d388 /]# curl localhost
aaabbbccc

Ctrl p q暂时退出容器,查看容器正在运行

[root@docker0 ~]# docker ps --all
CONTAINER ID   IMAGE        COMMAND       CREATED         STATUS         PORTS     NAMES
66afe850d388   centos:yum   "/bin/bash"   6 minutes ago   Up 6 minutes             c100

导出httpd镜像

[root@docker0 ~]# docker export -o centos_httpd.tar c100
[root@docker0 ~]# ls
anaconda-ks.cfg   centos.tar      initserver.sh
centos_httpd.tar  centos_yum.tar

 引入httpd镜像

[root@docker0 ~]# docker import -m httpd centos_httpd.tar centos:httpdsha256:6e62dbf29499e0f2728ec12c86f18824aee2c2c7ee4e8356c9ad898edc939cb4
[root@docker0 ~]# docker image ls
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
centos       httpd     6e62dbf29499   16 seconds ago   309MB
centos       yum       06a31e228ee1   3 hours ago      260MB
centos       latest    5d0da3dc9764   2 years ago      231MB

3.IP地址

1.进入容器查看

[root@docker0 ~]# docker attach c100
[root@66afe850d388 /]# yum -y install net-tools
[root@66afe850d388 /]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 172.17.0.2  netmask 255.255.0.0  broadcast 172.17.255.255ether 02:42:ac:11:00:02  txqueuelen 0  (Ethernet)RX packets 10902  bytes 18719264 (17.8 MiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 6207  bytes 348509 (340.3 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 1000  (Local Loopback)RX packets 16  bytes 1240 (1.2 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 16  bytes 1240 (1.2 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0[root@66afe850d388 /]# curl 127.17.0.2
aaabbbccc
[root@66afe850d388 /]# curl 127.17.0.3
aaabbbccc
[root@66afe850d388 /]# read escape sequence

2.使用docker指令inspect

#inspect用法
inspect     Return low-level information on Docker objects
[root@docker0 ~]# docker inspect --helpUsage:  docker inspect [OPTIONS] NAME|ID [NAME|ID...]Return low-level information on Docker objectsOptions:-f, --format string   Format output using a custom template:'json':             Print in JSONformat'TEMPLATE':         Print output usingthe given Go template.Refer tohttps://docs.docker.com/go/formatting/for more information about formattingoutput with templates-s, --size            Display total file sizes if the type iscontainer--type string     Return JSON for specified type[root@docker0 ~]# docker inspect c100

3.外部调用指令

docker exec c100 ip a

docker exec c101 ifconfig

[root@docker0 ~]# docker exec c100 ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
4: eth0@if5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0valid_lft forever preferred_lft forever[root@docker0 ~]# docker exec c101 ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 172.17.0.3  netmask 255.255.0.0  broadcast 172.17.255.255ether 02:42:ac:11:00:03  txqueuelen 0  (Ethernet)RX packets 257  bytes 345445 (337.3 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 163  bytes 9248 (9.0 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 1000  (Local Loopback)RX packets 22  bytes 1861 (1.8 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 22  bytes 1861 (1.8 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

4.端口映射

1.将容器中的80端口映射到宿主机(docker主机)80端口

[root@docker0 ~]# docker ps --all
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@docker0 ~]# 
[root@docker0 ~]# docker run -it --name c0 -p80:80/tcp centos:httpd /bin/bash
[root@12c584d32bf9 /]# httpd -k start
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
[root@12c584d32bf9 /]# curl localhost
aaabbbccc
[root@12c584d32bf9 /]# [root@docker0 ~]# 
[root@docker0 ~]# curl 172.17.0.2
aaabbbccc
[root@docker0 ~]# curl localhost
aaabbbccc
[root@docker0 ~]# curl 192.168.1.50
aaabbbccc

 

 2.随机为容器指定映射一个端口,映射端口大于等于32768

[root@docker0 ~]# docker ps --all
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@docker0 ~]# docker run -it --name c0 -p80 centos:httpd /bin/bash
[root@ad4aa342a339 /]# httpd -k start
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
[root@ad4aa342a339 /]# curl localhost
aaabbbccc
[root@ad4aa342a339 /]# [root@docker0 ~]# 
[root@docker0 ~]# docker ps
CONTAINER ID   IMAGE          COMMAND       CREATED          STATUS          PORTS                                     NAMES
ad4aa342a339   centos:httpd   "/bin/bash"   29 seconds ago   Up 29 seconds   0.0.0.0:32769->80/tcp, :::32769->80/tcp   c0
[root@docker0 ~]# curl 192.168.1.50:80
curl: (7) Failed connect to 192.168.1.50:80; 拒绝连接
[root@docker0 ~]# curl 192.168.1.50:32769
aaabbbccc

 3.通过其他的IP地址的端口映射容器的端口

 docker run -it --name c0 -p129.168.1.51 centos:httpd /bin/bash

5.持久化

挂载

在创建容器的时候挂载

[root@docker0 ~]# docker ps --all
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
#创建一个挂载目录
[root@docker0 ~]# mkdir /source[root@docker0 ~]# docker run -it --name c0 -v /source:/data centos:httpd /bin/bash
#查看容器就会有一个data目录
[root@76f17e18485d /]# ls
bin   etc   lib64	mnt   root  srv  usr
data  home  lost+found	opt   run   sys  var
dev   lib   media	proc  sbin  tmp
#暂时退出容器
[root@76f17e18485d /]# [root@docker0 ~]# 
#在容器外面创建一个文档
[root@docker0 ~]# touch /source/abc.txt
[root@docker0 ~]# ls /source/
abc.txt
#查看容器里面也出现了这个文档
[root@docker0 ~]# docker exec c0 ls /data
abc.txt
#同样在容器里面创建一个,外面的挂载目录也会出现
[root@docker0 ~]# docker exec c0 touch /data/def.txt
[root@docker0 ~]# ls /source/
abc.txt  def.txt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/409089.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

stm32-SD卡实验

1. SD简介 SD卡&#xff0c;Secure Digital Card&#xff0c;称为安全数字卡&#xff08;安全数码卡&#xff09;。 SD卡系列主要有三种&#xff1a;SD卡(full size)、MiniSD卡和MicroSD卡&#xff08;原名 TF卡&#xff09;。 特点&#xff1a;容量大、高安全性、体积小、传…

打包资料优化目录

这篇文章主要写一下这一次更新的几个地方&#xff0c;有对原来的代码及模型进行优化的部分&#xff0c;也有新增加的代码和模型&#xff0c;我就把几个比较典型的给列了出来。但是还有好多的更新没有在下面展示出来&#xff0c;因为一个个展示出来太复杂了。如果你对更新的内容…

暑期算法训练

目录 A.糖果&#xff08;Candy) B.小红的数组重排 C.牛牛与LCM D.子串 E.勤奋的杨老师 F.清楚姐姐跳格子 G.方块 I H.PUBG A.糖果&#xff08;Candy) 思路 &#xff1a;贪心&#xff0c;为了使操作数最少&#xff0c;我们要尽可能的先吃第二个盒子里的糖果&#x…

UE5.4 - 下载和安装

一. 简介 虚幻引擎&#xff08;Unreal Engine&#xff09;是由 Epic Games 公司推出的一款功能强大的游戏开发引擎。它于 1998 年推出第一代&#xff0c;其口号是 “全球最开放、最先进的实时 3D 创作工具”。 虚幻引擎被广泛应用于游戏产业&#xff0c;创作出了众多知名的 3…

【工具类】Java优雅的将XML转为JSON格式、XML转JSON

Java优雅的将XML转为JSON格式、XML转JSON 1. 导入依赖1.1 Maven使用1.2 Gradle使用 2. 代码编写3.运行示例 1. 导入依赖 1.1 Maven使用 <dependency><groupId>org.dom4j</groupId><artifactId>dom4j</artifactId><version>2.1.3</vers…

黑神话悟空,高清壁纸、原画,游戏截图

黑神话悟空&#xff0c;高清壁纸、原画&#xff0c;游戏截图&#xff1a; 链接&#xff1a;https://pan.quark.cn/s/cd17c05c4f33

【STM32】驱动LCD

没买LCD屏&#xff0c;没有上机实践&#xff0c;只是学习了理论。 大部分图片来源&#xff1a;正点原子HAL库课程 专栏目录&#xff1a;记录自己的嵌入式学习之路-CSDN博客 目录 1 屏幕接口 2 屏幕驱动的基本步骤 3 8080时序的各信号线 4 8080的读和写 5 屏…

二分查找算法:朴素二分+左右边界二分力扣实战应用

目录&#xff1a; 1、二分查找算法简介 2、算法原理及时间复杂度分析 2.1 朴素二分算法 3.2 查找左右边界的二分算法 3.2.1 查找左边界 3.2.2 查找右边界 3.3 时间复杂度分析 3、二分查找算法模版 3.1 朴素二分模版 3.2 查找左右边界的二分模版 4、算法应用【leetco…

考研数学暑期进度大调查,你掉队了吗?

现在已经8月&#xff0c;马上快9月份了&#xff0c;你的数学进度学到哪里啦&#xff1f; 我可不是“进度哥“&#xff0c;也不会营造焦虑&#xff0c;其实对于进度这个事情&#xff0c;我一直觉得是一个伪命题&#xff0c;因为很多同学一直鼓吹进度多快&#xff0c;结果最后考…

合宙LuatOS开发板使用说明——Air700ECQ

EVB-Air700ECQ-IO 开发板是合宙通信推出的基于 Air700ECQ 模组所开发的&#xff0c;包含电 源&#xff0c; SIM 卡&#xff0c;USB &#xff0c;天 线&#xff0c; 全 IO 引 出的最 小硬 件系 统。以 方便 用户 在设 计前期 对 Air700ECQ 模块进行性能评估&#xff0c;功能调试…

Hadoop集群运维管理

Hadoop集群运维管理 一、Hadoop 集群进程管理1.1 NameNode 守护进程管理1.2 DataNode 守护进程管理1.3 ResourceManager 守护进程管理1.4 NodeManager 守护进程管理 二、Hadoop 集群运维技巧2.1 查看日志2.2 清理临时文件2.3 定期执行负载均衡2.4 文件系统检查2.5 元数据备份 三…

Maven的一些相关知识【重修】《包括私服搭建!》

mvnrepository.com Maven 下载jar包的位置&#xff01; 【该部分有教程】 这是什么nb代码投稿视频-这是什么nb代码视频分享-哔哩哔哩视频 MAVEN 的私服搭建&#xff1a; https://zhuanlan.zhihu.com/p/520107316 2、maven私服搭建及应用&#xff08;下&#xff09;_哔哩…

SQL手工注入漏洞测试(PostgreSQL数据库)

判断注入点 and 12 判断回显点 order 不用 4 页面正常 order by 5 页面异常&#xff0c;得出只存在四个字段 测试回显位置 and 12 union select null,null,null,null and 12 union select null,null,null,null and 12 union select null,null,null,null and 12 union select…

如何在不格式化的情况下解锁 Android 智能手机密码

如果您忘记密码&#xff0c;您的 Android 移动设备将锁定您。发生这种情况时&#xff0c;通常可以通过恢复出厂设置来重新获得对设备的访问权限。可悲的是&#xff0c;这将导致所有数据丢失。下面列出的是解锁锁定的Android 手机而不会丢失任何个人数据的有效方法。 Android 手…

Open3D 近似点体素滤波(36)

Open3D 近似点体素滤波(36) 一、算法介绍二、算法实现1.代码2.效果一、算法介绍 这个算法也是体素滤波, 它保留的点是近似点,也就是新的点,原始点云中对应位置是不存在这些点的。其他的看着类似,下面是代码,滤波抽稀结果 二、算法实现 1.代码 代码如下(示例): …

Long Short-Term Memory

这篇论文总结的太抽象了&#xff0c;只是翻译了一遍。 &#xff08;我太笨了&#xff0c;如果把这个当我的入门读物&#xff0c;我觉着会把我折磨坏&#xff09; 递归神经网络的一个重要优点是它们在映射输入和输出序列时使用上下文信息的能力。不幸的是&#xff0c;对于标准的…

Chainlit接入FastGpt接口完美对接,实现全新的用户聊天界面

前言 由于fastgpt只提供了一个分享用的网页应用&#xff0c;网页访问地址没法自定义&#xff0c;虽然可以接入NextWeb/ChatGPT web等开源应用。但是如果我们想直接给客户应用&#xff0c;还需要客户去设置配置&#xff0c;里面还有很多我们不想展示给客户的东西怎么办&#xf…

[数据集][目标检测]街灯路灯检测数据集VOC+YOLO格式1893张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;1893 标注数量(xml文件个数)&#xff1a;1893 标注数量(txt文件个数)&#xff1a;1893 标注…

数据结构(Java实现):链表习题

文章目录 1. 题目列表及链接2. 题目解析及代码2.1 删除链表中等于给定值 val 的所有节点2.2 反转一个单链表2.3 给定一个带有头结点 head 的非空单链表&#xff0c;返回链表的中间结点。如果有两个中间结点&#xff0c;则返回第二个中间结点2.4 输入一个链表&#xff0c;输出该…

iTransformer时序模型改进——基于SENet和TCN的倒置Transformer,性能暴涨

1数据集介绍 ETT(电变压器温度)&#xff1a;由两个小时级数据集&#xff08;ETTh&#xff09;和两个 15 分钟级数据集&#xff08;ETTm&#xff09;组成。它们中的每一个都包含 2016 年 7 月至 2018 年 7 月的七种石油和电力变压器的负载特征。 数据集链接&#xff1a; https…