docker镜像,ip,端口映射,持久化

docker

镜像的迁移:导出和导入镜像

查看镜像:

[root@docker ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
centos       latest    5d0da3dc9764   2 years ago   231MB

打包

将镜像打包,找到save,可以将镜像保存为一个tar包,可以将tar发送给其他用户,也可以作为备份
[root@docker ~]# docker save -o centos.tar centos:latest 
[root@docker ~]# ls
anaconda-ks.cfg  centos.tar  RHEL7-extras.iso  RHEL7OSP-10.iso
[root@docker ~]# docker ps 
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@docker ~]# docker ps -all
CONTAINER ID   IMAGE           COMMAND       CREATED        STATUS                      PORTS     NAMES
b9d46da21fe3   centos:latest   "/bin/bash"   20 hours ago   Exited (0) 10 minutes ago             c0

删除镜像:

删除镜像时,如果有这个镜像生成的容器正在使用(exited时也不能删除),那么就无法使用rmi移除镜像

[root@docker ~]# docker rmi centos:latest 
Error response from daemon: conflict: unable to remove repository reference "centos:latest" (must force) - container b9d46da21fe3 is using its referenced image 5d0da3dc9764
删除容器,退出容器up状态

docker stop c0

[root@docker ~]# docker rm c0
c0

使用docker ps -all 确定没有镜像

[root@docker ~]# docker ps -all
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@docker ~]# docker rmi centos:latest 
Untagged: centos:latest
Untagged: centos@sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177
Deleted: sha256:5d0da3dc976460b72c77d94c8a1ad043720b0416bfc16c52c45d4847e53fadb6
Deleted: sha256:74ddd0ec08fa43d09f32636ba91a0a3053b02cb4627c35051aff89f853606b59
[root@docker ~]# docker images
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE

加载

从tar中引入镜像:将tar文件加载到镜像中

docker  --help

docker load --help
[root@docker ~]# ls
anaconda-ks.cfg  centos.tar  RHEL7-extras.iso  RHEL7OSP-10.iso
[root@docker ~]# docker load -i centos.tar 
74ddd0ec08fa: Loading layer  238.6MB/238.6MB
Loaded image: centos:latest
[root@docker ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
centos       latest    5d0da3dc9764   2 years ago   231MB

创建镜像

1.从容器导出tar包

查看帮助文档

     docker --help

     docker export --help

使用指令

     docker  export -o centos_yum.tar  c0

查看新生成的tar包

2.从tar包导入镜像

查看帮助文档

     docker --help

     docker  import --help 

使用导入

     Usage:  docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
     docker  import -m 说明内容  centos_yum.tar  centos:yum

查看镜像,这个镜像不需要我们配置yum

创建容器c0,在c0容器中配置了阿里云镜像和epel-release,ctrl+p+q在后台运行容器

容器打包:

[root@docker ~]# docker export -o centos_yum.tar c0
[root@docker ~]# ls
anaconda-ks.cfg  centos_yum.tar    RHEL7OSP-10.iso
centos.tar       RHEL7-extras.iso

引入镜像:
[root@docker ~]# docker import -m yum centos_yum.tar centos:yum
sha256:c03efa37a8dc3ab41a31a56f9a12c80374c8ccb321d57a617bd2b53a07d4f71e

[root@docker ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
centos       yum       c03efa37a8dc   22 seconds ago   260MB
centos       latest    5d0da3dc9764   2 years ago      231MB

验证:

[root@docker ~]# docker stop c0
c0
[root@docker ~]# docker ps -a
CONTAINER ID   IMAGE           COMMAND       CREATED          STATUS                     PORTS     NAMES
882870618b17   centos:latest   "/bin/bash"   15 minutes ago   Exited (0) 6 seconds ago             c0
[root@docker ~]# docker rm c0
c0
[root@docker ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@docker ~]# docker run -it --name c0 centos:yum /bin/bash
[root@860c52d03ab9 /]# ls /etc/yum.repos.d
CentOS-Base.repo   epel-playground.repo       epel-testing.repo
epel-modular.repo  epel-testing-modular.repo  epel.repo


ip网络:查看ip

1.交互式:进入到容器,使用指令

docker start c0

docker attach c0

yum -y install net-tools或者iproute

ifconfig或ip a  s 来查看地址

2.使用docker指令inspect

[root@docker ~]# docker inspect c100

3.在外部调用指令:exec

前提是在容器上下载相关的工具或者

docker exec c100 yum -y install net-tools

[root@docker ~]# docker exec c100 ip a s

[root@docker ~]# docker exec c100 ifconfig

使用exec指令touch一个文件

[root@docker ~]# docker exec c100 touch /opt/test.txt
[root@docker ~]# docker exec c100 ls /opt
test.txt
 

启动容器并端口映射

不做端口映射的话,在物理机上无法查看docker容器发布的服务

1.指定端口映射

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

docker run -it --name c0 -p80(宿主机):80(容器)  centos:httpd /bin/bash

2.随机端口映射

随机的为容器指定映射端口,映射端口>=32768

docker run -it --name c1 -p80(容器) centos:httpd /bin/bash

crtl+p+q

docker  ps

3.指定其他ip的端口映射

通过其他的ip地址的端口映射容器的端口

通过ifconfig添加一个ip

docker run -it --name c0 -pIP地址::80 centos:httpd /bin/bash

[root@docker ~]# ifconfig ens33:0 192.168.118.56 broadcast 192.168.118.56 netmask 255.255.255.255 up
[root@docker ~]# docker run -it --name c0 -p192.168.118.56::80 centos:httpd /bin/bash
[root@91b858d59851 /]# httpd -k start
[root@91b858d59851 /]# curl localhost
i am httpd
[root@91b858d59851 /]# [root@docker ~]# 
[root@docker ~]# docker ps --all
CONTAINER ID   IMAGE          COMMAND       CREATED          STATUS          PORTS                          NAMES
91b858d59851   centos:httpd   "/bin/bash"   50 seconds ago   Up 50 seconds   192.168.118.56:32768->80/tcp   c0
 

[root@docker ~]# curl 192.168.118.56:32768
i am httpd

持久化:共享卷,挂载

将宿主机上的source目录与容器中的data目录共享:
[root@docker ~]# ls /
bin   dev  home  lib64  mnt  proc  run   source  sys  usr
boot  etc  lib   media  opt  root  sbin  srv     tmp  var
[root@docker ~]# docker run -it --name c0 -v /source:/data centos:httpd /bin/bash
[root@805a80743684 /]# ls
bin   dev  home  lib64         media  opt   root    sbin  sys  usr
data  etc  lib     lost+found  mnt    proc  run    srv   tmp  var
[root@805a80743684 /]# [root@docker ~]# 
[root@docker ~]# touch /source/abc.txt
[root@docker ~]# ls /source
abc.txt
[root@docker ~]# docker exec c0 ls /data
abc.txt
[root@docker ~]# docker exec c0 touch /data/def.txt
[root@docker ~]# ls /source
abc.txt  def.txt
 

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

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

相关文章

【复旦微FM33 MCU 外设开发指南】外设篇1——GPIO

前言 本系列基于复旦微FM33系列单片机的DataSheet编写,旨在提供一些开发指南。 本文章及本系列其他文章将持续更新,本系列其它文章请跳转【复旦微FM33 MCU 外设开发指南】总集篇 本文章最后更新日期:2024/08/25 文章目录 前言GPIO工作时钟…

DevOps入门(上)

1: DevOps概念 DevOps: Development 和 Operations 的组合 DevOps 看作开发(软件工程)、技术运营和质量保障(QA)三者的交集。 突出重视软件开发人员和运维人员的沟通合作,通过自动化流程来使…

私域流量的落脚点与开源 AI 智能名片 2+1 链动商城小程序

摘要:本文探讨了私域流量的重要性及其落脚点,分析了快钱收割思维在私域流量运作中的弊端。同时,引入开源 AI 智能名片 21 链动商城小程序,阐述其在成就人格化 IP 和打造品牌域、通过直播电商规模化变现方面的作用,为企…

[论文笔记]Improving Retrieval Augmented Language Model with Self-Reasoning

引言 今天带来一篇百度提出的关于提升RAG准确率的论文笔记,Improving Retrieval Augmented Language Model with Self-Reasoning。 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 检索增强语言模型(Retrie…

PostgreSQL11 | 事务处理与并发控制

PostgreSQL11 | 事务处理与并发控制 本文章代码已在pgsql11.22版本上运行且通过,展示页由pgAdmin8.4版本提供,本文章第一次采用md文档,效果比csdn官方富文本编辑器好用,以后的文章都将采用md文档 事务管理简介 事物是pgsql中的…

跨越语言障碍:2024四款实用在线翻译工具评测!

随着技术的不断进步,各种在线翻译工具层出不穷,帮助我们轻松跨越语言的鸿沟。今天,让我们一起探索几款非常实用的在线翻译工具! 福昕在线翻译 直达链接: https://fanyi.pdf365.cn/ 福昕在线翻译是一款专注于文档翻…

LeetCode 热题 100 回顾

目录 一、哈希部分 1.两数之和 (简单) 2.字母异位词分组 (中等) 3.最长连续序列 (中等) 二、双指针部分 4.移动零 (简单) 5.盛最多水的容器 (中等) 6…

jmeter中导入java方法并使用

1、首先打开idea,在idea中点击File-New-Project ,创建一个项目,项目名为JmtOne 2、项目创建完成后,直接在main函数中定义两个方法,记住该主函数的包名跟类名,后面会用到,在类中定义了两种拆分字符串的方法&…

iLogtail 开源两周年:感恩遇见,畅想未来

早在上世纪 60 年代,早期的计算机(例如 ENIAC 和 IBM 的大型机)在操作过程中会输出一些基本的状态信息和错误报告,这些记录通常通过打印机输出到纸带或纸卡上,用于跟踪操作流程和调试,最早期的日志系统借此…

Matlab基本知识

🌈个人主页:羽晨同学 💫个人格言:“成为自己未来的主人~” %% Matlab基本的小常识 % (1)在每一行的语句后面加上分号(一定要是英文的) a3; a5; % (2)多行注释:选中要注释的若干语句,快捷键CtrlR % a3; %…

MinIO 企业级人工智能存储的数据和驱动器同等重要

为什么会这样?这是因为硬件故障发生在不同的级别。有一些中断会导致整个站点瘫痪。然后,会出现中断,导致集群中的一部分节点瘫痪。但是,在更精细的硬盘驱动器位级别也存在故障,这些故障需要复制本身无法提供的另一种类…

android studio 新建java工程, 安卓新建项目,android studio2024 如何新建java项目

主要解决,新增安卓工程,没有java选项 1. 点击左上角FIle -> New -> 2. 选择 no activity 选项, 然后next 3. langua 就可以选择java 了。name自己定义项目名称,项目存储地址,包名。 配置完成选择finish. 4. fin…

MyBatis XML配置文件(下)

MyBatis的开发有两种方式:1、注解 2、XML。使用MyBatis的注解方式,主要是来完成一些简单的增删改查功能。如果需要实现复杂的SQL功能,建议使用XML来配置映射语句,也就是将SQL语句写在XML配置文件中。 MyBatis XML开发的方式需要以…

面向对象02:构造器详解

本节内容视频链接:面向对象05:构造器详解_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV12J41137hu?p64&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 构造器(‌Constructor)‌是一种特殊的方法,‌用于初始…

linux下的oracle启动命令

一、服务器断电后,手工启动oracle数据库步骤如下: 1、进入数据库服务器,切换到oracle用户,命令:su - oracle 2、启动数据库,命令: 1) sqlplus / as sysdba 2) startup 3)如果数据库已…

【Qt笔记】Qt界面显示时间

目录 一、前言 二、基本概念 三、代码实现 1. 获取本地时间,并将其转换成自己想要的格式 2.创建一个QLabel控件用于显示时间字符串 3.创建QTimer定时器更新时间 四、优化 1. 格式优化 1.1 初始化 1.2 获取星期 1.3 更改格式 1.4 定时器超时函数 1.5 …

代码随想录 | day 15 | 二叉树part03

完全二叉树的节点个数 方法一:可以用递归法遍历一遍左子树和右子树的个数之和再加1等于全部节点个数 class Solution { public:int getcount(TreeNode* cur){if(curNULL) return 0;int leftcount getcount(cur->left);int rightcount getcount(cur->right…

以简单的例子从头开始建spring boot web多模块项目(四)-多模块工具类

目的是为了验证主工程调用工具工程。 1、新建模块&#xff0c;名称为WebTool 同样为Maven Archetype&#xff0c;类型为 org.apache.maven.archetypes:maven-archetype-quickstart 2、修改pom.xml 增加spring-boot-starter的依赖。 <dependency><groupId>org.spri…

【科研绘图】【分条热力图】:附Origin详细画图流程 + 案例分析

目录 No.1 理解分条热力图 No.2 画图流程 1 导入数据&#xff0c;绘制图形 2 设置绘图细节 3 色阶控制 4 设置坐标轴 5 效果图 No.3 案例分析 1 案例一 2 案例二 No.1 理解分条热力图 分条热力图&#xff0c;基于数据映射和颜色编码&#xff0c;是在热力图的基础上进…

【Hot100】LeetCode—437. 路径总和 III

目录 1- 思路前缀和哈希表dfs 2- 实现⭐437. 路径总和 III——题解思路 3- ACM 实现 题目连接&#xff1a;437. 路径总和 III 1- 思路 前缀和哈希表dfs ① 前缀和 求二叉树的前缀和&#xff0c;每求一次用一个 sum 传参记录更新 ② 哈希表 key 为前缀和 &#xff0c;value…