Docker续1:docker使用

news2024/11/15 17:43:19

一、打包传输

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.coloradmin.cn/o/2086271.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

付费自习室管理小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,商家管理,类型管理,自习室管理,订单管理,系统管理 微信端账号功能包括:系统首页,自习室,我的 …

python-旋转木马(赛氪OJ)

[题目描述] 我们要做一个旋转木马! 输入一个 nn 的字符矩阵,将其顺时针旋转 90 度后输出。输入格式: 输入共 n1 行。 第一行一个整数 n,表示矩阵大小。 接下来 n 行,每行一个长度为 n 的字符串,仅包含小写字…

Linux高性能服务器编程 总结索引 | 第2章:IP协议详解

IP头部信息 IP数据报的路由和转发 1、IP 服务的特点 1、IP 协议是 TCP/IP 协议族的动力,它为上层协议提供 无状态、无连接、不可靠的服务 2、无状态 是指 IP 通信双方不同步传输数据的状态信息,因此 所有 IP 数据报的发送、传输和接收都是相互独立、没…

【Linux应用编程实战】常见函数应用

介绍一些Linux应用编程实战遇到的,常见要用的函数,进行概况总结。 目录 main() lseek() poll() struct pollfd 结构体返回值典例 mmap() munmap(…

kylin-麒麟操作系统-安装内存泄露补丁-以及kylin-kms-activation.service服务不断重启解决思路

文章目录 前言1. 问题现象1.1 使用journalctl命令查看更详细的日志信息 2. 解决思路2.1 思路一:2.2 思路二:2.3 合理的解法: 3. 扩展-修复内存泄露3.1 查看自己使用的镜像3.2 到麒麟官网下载相应的补丁包3.3 安装步骤3.4 重启kylin-kms-activation.servi…

python如何另起一行

python 字符串换行的三种方式: 第一种:三个单引号 print 我是一个程序员 我刚开始学习python 第二种:三个双引号 print """ 我是一个程序员 我刚开始学习python""" 第三种:\结尾 print "我是…

生成式AI,搜索赛道的又一个黄金十年

文|白 鸽 编|王一粟 随着生成式AI的发展,搜索引擎正在被重构,越来越多玩家开始布局AI搜索赛道。 一方面,传统搜索引擎/浏览器正借助AI技术的重构重新焕发生机,无论是移动端还是PC端,都在抢占…

GHA高质量原创文章是什么?

GHA文章是一种专为提高搜索引擎优化(SEO)效果而设计的高质量原创内容。GHA代表高质量,这些文章通过精心编写和策略布局,就是为了帮助网站迅速在Google等搜索引擎上获得排名,写一篇能在Google上获得高排名的文章&#x…

postman注入csrf

示例脚本 参数配置位置 必要参数 django项目仅需要设置domain即可,比如www.baidu.com,baidu.com尽量域名精确避免修改到其他域的参数 必须把这个domain添加到 cookies->Manage cookies ->Domains Allowlist 中,否则cookie的注入失败 代码 // 必…

P1516 青蛙的约会(exgcd)

一些前置知识: 1.扩展欧几里得算法: axbygcd(a,b) 方程一个可行的解(x1,y1)求法: int exgcd(int a,int b,int &x,int &y) {if(!b){x1,y0; return a;}int dexgcd(b,a%b,y,x);y-a/b*x;return d; }2.由axbygcd…

URP简洁的instance的写法

材质还是要开启enable instance,这是上一次的写法 https://dbbh666.blog.csdn.net/article/details/136644181 最近发现更适合我个人的习惯的写法 就是代码控制这个整个过程 C#代码是这样的,获取一个mesh,获取每个mesh的transform&#xff0c…

UE5 摄像机图像采集到材质 映射到 UI 和 物体表面

一.创建SceneCapture2D的组件 二.创建用于 映射的 贴图 三.将RenderTarget贴图放到SceneCapture2D的摄像机上Scene Capture的TextureTarget 四.这个时候的映射贴图,产生的材质可以直接。放到Plane上。 五,但是如果要用于UI,还需要更改SceneCapture2D的摄…

基于SpringBoot的在线答疑系统

你好呀,我是计算机专业毕业生,专注于在线教育平台的开发与实现。 开发语言:Java 数据库:MySQL 技术:Java技术 Spring Boot框架 工具:IntelliJ IDEA、Navicat、Maven、Tomcat 系统展示 首页 个人中心…

【Python】简单的数据类型——int、float、bool、str

目录 1. 整数类型 int 2. 浮点数类型 float 3. 布尔类型 bool 4. 字符串 str 5. 格式化输出 6. 类型转换 6.1 隐式类型转换 6.2 显示类型转换 7. 标准输入 1. 整数类型 int a 10 print(type(a)) print(type(-2))<class int> <class int>测试整型能表示的…

docker私有云仓库Harbor部署及使用

文章目录 一、前置准备1、安装docker、docker-compose 二、安装harbor1、下载Harbor2、证书3、配置文件4、安装5、docker使用6、k8s使用&#xff08;1.28版本containerd&#xff09; 三、常用运维1、重启 一、前置准备 1、安装docker、docker-compose centos7安装与卸载docke…

2024年【道路运输企业安全生产管理人员】考试题库及道路运输企业安全生产管理人员考试试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年道路运输企业安全生产管理人员考试题库为正在备考道路运输企业安全生产管理人员操作证的学员准备的理论考试专题&#xff0c;每个月更新的道路运输企业安全生产管理人员考试试题祝您顺利通过道路运输企业安全生…

牛客NC313 两个数组的交集 C++

牛客NC313 两个数组的交集 C 思路&#x1f914;&#xff1a; 用哈希表存储第一个数组&#xff0c;再和第二个数组对比&#xff0c;对比成功就添加到新的数组中&#xff0c;之后将哈希表的该位置变为false&#xff0c;防止重复添加。这里数据范围仅有1000&#xff0c;所以我们可…

Windows10系统中安装Maven 3.8.8的步骤

Windows10系统中安装Maven 3.8.8的步骤 1、前提 因已安装好了JDK17,需要安装跟JDK17对应的版本,选了maven3.8.8 2. 下载 Maven 访问 Apache Maven 官网下载页面。选择下载:apache-maven-3.8.8-bin.zip 3、解压缩 4、增加系统环境变量 MAVEN_HOME =C:\hmf\apache-maven…

cppbase阶段汇总

第一章 C与C 本章主要讲解C相较于C一些独有的比较重要的知识点。 C源文件后缀名&#xff1a;.cc或.cpp 头文件后缀名&#xff1a;.hh或.hpp 安装g命令&#xff1a;sudo apt install g 编译命令&#xff1a;g filename.cc [-o name] 首先从C的 hello,world 程序入手&#xff0c…

【C++笔记】类和对象的深入理解(一)

【C笔记】类和对象的深入理解(一) &#x1f525;个人主页&#xff1a;大白的编程日记 &#x1f525;专栏&#xff1a;C笔记 文章目录 【C笔记】类和对象的深入理解(一)前言一.类的定义1.1类定义格式1.2访问限定符1.3类域 二.实例化2.1 实例化概念2.2对象大小 三.this指针四.练…