Docker续1:

news/2024/9/18 14:48:19/ 标签: docker, 容器, 运维

一、打包传输

1.打包

[root@localhost ~]# systemctl start docker
[root@localhost ~]# docker save -o centos.tar centos:latest 
[root@localhost ~]# ls
anaconda-ks.cfg  centos.tar

2.传输

[root@localhost ~]# scp centos.tar root@192.168.1.100:/root

3.删除镜像

[root@localhost ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
centos       latest    5d0da3dc9764   2 years ago   231MB
[root@localhost ~]# docker start c0                   //启动容器
c0
[root@localhost ~]# docker attach c0                     //进入容器
[root@207ca7680ecc /]# exit
exit
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@localhost ~]# docker ps --all                         //查看全部
CONTAINER ID   IMAGE           COMMAND       CREATED        STATUS                     PORTS     NAMES
207ca7680ecc   centos:latest   "/bin/bash"   20 hours ago   Exited (0) 4 seconds ago             c0
[root@localhost ~]# docker rmi centos:latest                               //这里看到没有删掉,因为有容器正在使用
Error response from daemon: conflict: unable to remove repository reference "centos:latest" (must force) - container 207ca7680ecc is using its referenced image 5d0da3dc9764
[root@localhost ~]# docker rm c0                                  //删除容器
c0
[root@localhost ~]# docker ps --all
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@localhost ~]# docker rmi centos:latest                                   //成功删除
Untagged: centos:latest
Untagged: centos@sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177
Deleted: sha256:5d0da3dc976460b72c77d94c8a1ad043720b0416bfc16c52c45d4847e53fadb6
Deleted: sha256:74ddd0ec08fa43d09f32636ba91a0a3053b02cb4627c35051aff89f853606b59
[root@localhost ~]# docker images
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE

4.导入到本地目录

[root@localhost ~]# docker load -i centos.tar
74ddd0ec08fa: Loading layer
[==================================================
>] 238.6MB/238.6MB
Loaded image: centos:latest
[root@localhost ~]# docker image ls          //这里看到已经导入成功了
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
centos       latest    5d0da3dc9764   2 years ago   231MB


二、容器导出镜像(导出一个有yum源的镜像)

1.有yum源的

[root@localhost ~]# docker run -it --name=c0 centos:latest /bin/bas               //创建并启动服务
配置yum源
[root@70f41b63c128 /]# rm -rf /etc/yum.repos.d/*
[root@70f41b63c128 /]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo                 
[root@70f41b63c128 /]# yum clean all && yum makecache
[root@70f41b63c128 /]#yum -y install epel-release
ctrl+p+q退出
[root@localhost ~]# docker ps --all
CONTAINER ID   IMAGE           COMMAND       CREATED         STATUS         PORTS     NAMES
70f41b63c128   centos:latest   "/bin/bash"   8 minutes ago   Up 8 minutes             c0
[root@localhost ~]# docker export -o centos_yum.tar c0                     //导出tar
[root@localhost ~]# ls
anaconda-ks.cfg  centos.tar  centos_yum.tar
[root@localhost ~]# docker import -m yum centos_yum.tar centos:yum            //导入为镜像
sha256:9d43e5c9d7e41b8ed7ec287ad1cde2e56297808cab66618e25f25b6962b869fa
[root@localhost ~]# docker image ls                                  //生成了新的镜像
REPOSITORY   TAG       IMAGE ID       CREATED              SIZE
centos       yum       9d43e5c9d7e4   About a minute ago   260MB
centos       latest    5d0da3dc9764   2 years ago          231MB

2.有httpd的

[root@localhost ~]# docker run -it --name c100 centos:yum /bin/bash
[root@1fe0d666d8b9 /]# yum -y install httpd

[root@1fe0d666d8b9 /]# echo "i am tdr" > /usr/share/httpd/noindex/index.html 
退出
[root@localhost ~]# docker export -o centos_httpd.tar c100
[root@localhost ~]# ls
anaconda-ks.cfg  centos_httpd.tar  centos.tar  centos_yum.tar
[root@localhost ~]# docker import -m httpd centos_httpd.tar centos:httpd
[root@localhost ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED             SIZE
centos       httpd     55b1539d5cd6   About an hour ago   309MB
centos       yum       9d43e5c9d7e4   4 hours ago         260MB
centos       latest    5d0da3dc9764   2 years ago         231MB


三、IP地址

查看ip

1.进入容器,安装net-tools或iproute,直接使用命令ifconfig

[root@6e9839616992 /]# yum -y install net-tools
[root@6e9839616992 /]# ifconfig 
[root@6e9839616992 /]# yum -y install iproute
[root@6e9839616992 /]# ip a s

2.在外面使用docker指令inspect

[root@localhost ~]# docker inspect c100
[root@localhost ~]# docker inspect centos:httpd 

3.在外部调用指令

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

4.使用exec创建一个文件

[root@localhost ~]# docker exec c100 touch /root/tdr.txt
[root@localhost ~]# docker attach c100
[root@6e9839616992 /]# ls /root
anaconda-ks.cfg  anaconda-post.log  original-ks.cfg  tdr.txt


四、虚拟机端口映射

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

[root@localhost ~]# docker stop c100 c101                          //停用容器 
c100
c101
[root@localhost ~]# docker rm c100 c101                          //删除容器
c100
c101
[root@localhost ~]# docker run -it --name c0 -p80:80/tcp centos:httpd /bin/bash                //创建启动并映射端口,将容器中的80端口映射给宿主机的80端口,前面是宿主机的端口,后面是容器的端口
[root@1fe0d666d8b9 /]# httpd -k start
[root@1fe0d666d8b9 /]# echo "tdr" > /usr/share/httpd/noindex/index.html 
ctrl+p+q退出
[root@localhost ~]# curl localhost                            //宿主机访问,没做端口映射之前就是可以访问的
tdr           
去真机浏览器访问虚拟机IP:192.168.1.76                  //没做端口映射之前不能访问,现在可以了


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

[root@localhost ~]# docker ps --all 
CONTAINER ID   IMAGE          COMMAND       CREATED          STATUS          PORTS                               NAMES
1fe0d666d8b9   centos:httpd   "/bin/bash"   19 minutes ago   Up 19 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp   c0
[root@localhost ~]# docker stop c0                 //停止
c0
[root@localhost ~]# docker rm c0                   //删除
c0
[root@localhost ~]# docker run -it --name c1 -p80 centos:httpd /bin/bash  //这里只有80,是容器的80端口
[root@dce0e427f4d6 /]# httpd -k start
[root@dce0e427f4d6 /]# curl localhost
i am tdr
ctrl+p+q退出
[root@localhost ~]# docker ps                   
CONTAINER ID   IMAGE          COMMAND       CREATED              STATUS              PORTS                                     NAMES
dce0e427f4d6   centos:httpd   "/bin/bash"   About a minute ago   Up About a minute   0.0.0.0:32768->80/tcp, :::32768->80/tcp   c1
[root@localhost ~]# curl 192.168.1.76:32768
i am tdr
去真机浏览器访问虚拟机IP:192.168.1.76:32768


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

[root@localhost ~]# ifconfig ens33:0 192.168.1.77 broadcast 192.168.1.77 netmask 255.255.255.255 up
[root@localhost ~]# docker run -it --name c0 -p192.168.1.77::80 centos:httpd /bin/bash
[root@1775f9c8e015 /]# httpd -k start
[root@1775f9c8e015 /]# curl localhost
i am tdr
ctrl+p+q退出
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE          COMMAND       CREATED              STATUS              PORTS                                     NAMES
1775f9c8e015   centos:httpd   "/bin/bash"   About a minute ago   Up About a minute   192.168.1.77:32769->80/tcp                c0
dce0e427f4d6   centos:httpd   "/bin/bash"   17 minutes ago       Up 17 minutes       0.0.0.0:32768->80/tcp, :::32768->80/tcp   c1
[root@localhost ~]# curl 192.168.1.77:32769
i am tdr
去真机浏览器访问虚拟机IP:192.168.1.77:32769

五、数据存储

挂载外部文件

[root@localhost ~]# mkdir /source                           //创建挂载点
[root@localhost ~]# docker run -it --name c2 -v /source:/data centos:httpd /bin/bash       //创建启动并挂载,这个data目录不需要在容器中新建,这里写了它就出现了
[root@db49f398a619 /]# ls                          //data目录出现了
bin   dev  home  lib64         media  opt   root    sbin  sys  usr
data  etc  lib     lost+found  mnt    proc  run    srv   tmp  var
ctrl+p+q退出
[root@localhost ~]# touch /source/abc.txt                         //宿主机挂载目录下创建文件
[root@localhost ~]# ls /source/
abc.txt
[root@localhost ~]# docker exec c2 ls /data                       //查看容器/data目录
abc.txt
[root@localhost ~]# docker exec c2 touch /data/def.txt           //在容器的/data目录下创建文件
[root@localhost ~]# ls /source/                                          //在宿主机也是可以查到的
abc.txt  def.txt


http://www.ppmy.cn/news/1517043.html

相关文章

总结:Python语法

Python中的字典、列表和数组是三种常用的数据结构,它们各自有不同的用途和特性。 字典(Dictionary) 字典是一种无序的、可变的数据结构,它存储键值对(key-value pairs)。字典中的每个元素都是一个键值对&…

flink--会话模式与应用模式

flink-会话模式部署 会话情况&#xff1a; 添加依赖 <properties><flink.version>1.17.2</flink.version> </properties> ​ <dependencies><dependency><groupId>org.apache.flink</groupId><artifactId>flink-strea…

CSS属性

一、CSS列表样式 1、list-style-type属性&#xff08;列表项标记&#xff09; CSS列表属性允许我们设置不同的列表项标记。 在HTML中&#xff0c;有​两种类型​的列表&#xff1a; ​无序列表​&#xff08;<ul>&#xff09; - 列表项目用​项目符号​标记​有序列表…

【Linux】自动化构建工具makefile

目录 背景 makefile简单编写 .PHONY makefile中常用选项 makefile的自动推导 背景 会不会写makefile&#xff0c;从一个侧面说明了一个人是否具备完成大型工程的能力 ​ ◉ 一个工程中的源文件不计数&#xff0c;其按类型、功能、模块分别放在若干个目录中&#xff0c;mak…

开放式耳机怎么戴?佩戴舒适在线的几款开放式耳机分享

开放式耳机的佩戴方式与传统的入耳式耳机有所不同&#xff0c;它采用了一种挂耳式的设计&#xff0c;提供了一种新颖的佩戴体验&#xff0c;以下是开放式耳机的佩戴方式。 1. 开箱及外观&#xff1a;首先&#xff0c;从包装盒中取出耳机及其配件&#xff0c;包括耳机本体、充电…

使用 FinalShell 链接 Centos

1. 安装 FinalShell 下载地址&#xff1a;https://www.hostbuf.com/t/988.html 2. 查看 IP地址。 2.1 通过命令查询IP 输入 ip addr show 查询&#xff0c;输出效果如下截图&#xff0c;其中的 192.168.1.5 就是 IP 地址。 2.2 通过可视化界面查询IP 点击右上角的网络图标…

LoadBalancer负载均衡

一、概述 1.1、Ribbon目前也进入维护模式 Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。 简单的说&#xff0c;Ribbon是Netflix发布的开源项目&#xff0c;主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的…

企业中需要哪些告警Rules

文章目录 企业中需要哪些告警Rules前言定义告警规则企业中的告警rulesNode.rulesprometheus.ruleswebsite.rulespod.rulesvolume.rulesprocess.rules 总结 企业中需要哪些告警Rules 前言 Prometheus中的告警规则允许你基于PromQL表达式定义告警触发条件&#xff0c;Prometheus…

poi word 添加水印

poi word 添加水印 依赖DocxUtil调用遇到的问题部分客户给的word无法添加水印水印文案 过长会导致字变小变形 超过一定长度就会显示异常。消失等情况 依赖 <!--poi-tl--><dependency><groupId>com.deepoove</groupId><artifactId>poi-tl</art…

捕获神经网络的精髓:深入探索PyTorch的torch.jit.trace方法

标题&#xff1a;捕获神经网络的精髓&#xff1a;深入探索PyTorch的torch.jit.trace方法 在深度学习领域&#xff0c;模型的部署和优化是至关重要的环节。PyTorch作为最受欢迎的深度学习框架之一&#xff0c;提供了多种工具来帮助开发者优化和部署模型。torch.jit.trace是PyTo…

设计模式 10 外观模式

设计模式 10 创建型模式&#xff08;5&#xff09;&#xff1a;工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式结构型模式&#xff08;7&#xff09;&#xff1a;适配器模式、桥接模式、组合模式、装饰者模式、外观模式、享元模式、代理模式行为型模式&#xff…

ansible的tags标签

1、tags模块 可以给任务定义标签&#xff0c;可以根据标签来运行指定的任务 2、标签的类型 always&#xff1a;设定了标签名为always&#xff0c;除非指定跳过这个标签&#xff0c;否则该任务将始终会运行&#xff0c;即使指定了标签还会运行never&#xff1a;始终不运行的任…

CPU、MPU、MCU、SOC分别是什么?

CPU、MPU、MCU和SoC都是与微电子和计算机科学相关的术语&#xff0c;它们在功能定位、应用场景以及处理能力等方面有所区别。具体如下&#xff1a; CPU&#xff1a;CPU是中央处理单元的缩写&#xff0c;它通常指计算机内部负责执行程序指令的芯片。CPU是所有类型计算机&#x…

java 读取mysql中的表并按照指定格式导出excel

在Java中读取MySQL中的数据表并将其导出到Excel文件中&#xff0c;你需要以下几个步骤&#xff1a; 连接MySQL数据库&#xff1a;使用JDBC驱动程序连接到MySQL数据库。执行SQL查询&#xff1a;获取表数据。使用Apache POI库生成Excel文件&#xff1a;将数据写入Excel格式。保存…

SpringBoot文档之构建包的阅读笔记

Packaging Spring Boot Applications Efficient Deployments Efficient Deployments 默认情况下&#xff0c;基于SpringBoot框架开发应用时&#xff0c;构建插件spring-boot-maven-plugin将项目打包为fat jar。 执行如下命令&#xff0c;解压构建得到的jar文件。 java -Djarmo…

Python 程序设计基础教程

Python 程序设计基础教程 撰稿人&#xff1a;南星六月雪 第 一 章 变量与简单数据类型 1.1 变量 先来观察以下程序&#xff1a; world "Hello Python!" print(world)world "Hello Python,I love you!" print(world)运行这个程序&#xff0c;将看到两…

0827作业+梳理(c++day01)

一、作业&#xff1a; 1、代码 #include <iostream> using namespace std; int main() {string str;cout<<"请输入一个字符串"<<endl;getline(cin,str);cout<<"str "<<str<<endl;//初始化各类字符个数int size_num …

如何保证Redis与数据库之间的一致性

在现代应用程序架构中&#xff0c;Redis等内存数据库因其高性能和低延迟特性而被广泛用于缓存、会话管理、消息队列等多种场景。然而&#xff0c;当Redis作为数据库&#xff08;如MySQL、PostgreSQL&#xff09;的缓存层时&#xff0c;确保数据在Redis和数据库之间的一致性变得…

jmeter中CSV 数据文件设置用例

1、CSV数据文件的基础使用 线程组->添加->配置远近->CSV数据文件设置 2、多条用例运行CSV数据文件 由于我的csv请求的json数据有“&#xff0c;”所以我这边 分隔符选择了*号 写了两行需要测试的用例&#xff0c;需要添加一个“循环控制器” 线程组->添加-&g…

splunk Enterprise 的HTTP收集器-windows

1.创建HTTP收集器 2.使用HTTP收集器 然后打开全局设置&#xff1a;把ssl给去掉&#xff0c;点保存&#xff08;保存之后&#xff0c;可以看到这些状态全部都是已启用了&#xff09;&#xff1a; 3.测试&#xff1a; curl --location --request POST http://192.168.11.131:808…