第二节 docker基础之---镜像构建及挂载

news2025/2/10 4:55:16

查看当前镜像:

[root@docker ~]# docker images
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE
[root@docker ~]#很明显docker是咱们新搭建的所以目前还没有镜像

1,搜索镜像:

[root@docker ~]# docker search centos

搜索镜像并过滤是官方的:

[root@docker ~]# docker search --filter 'is-official=true' centos

过滤星级镜像:

[root@docker ~]#例如过滤出大于10星级的镜像
[root@docker ~]# docker search --filter stars=10 centos

2,下载镜像:

[root@docker ~]# 例如下载centos7的镜像如果是版本6在冒号后面修改成6即可
[root@docker ~]# docker pull centos:7
7: Pulling from library/centos
2d473b07cdd5: Pull complete
Digest: sha256:be65f488b7764ad3638f236b7b515b3678369a5124c47b8d32916d6487418ea4
Status: Downloaded newer image for centos:7
docker.io/library/centos:7
[root@docker ~]#因为我前面已经部署了阿里云的镜像所以下载比较快,下载慢的话可以部署一下

下载好之后进行查看一下本地镜像:

[root@docker ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
centos       7         eeb6ee3f44bd   16 months ago   204MB
[root@docker ~]#已经显示了

3,修改镜像名和版本标签:

[root@docker ~]#例如把centos修改为mycentos版本7修改成1
[root@docker ~]# docker tag centos:7 mycentos:1

进行查看:

[root@docker ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
centos       7         eeb6ee3f44bd   16 months ago   204MB
mycentos     1         eeb6ee3f44bd   16 months ago   204MB
[root@docker ~]# 可以看到已经多出一条修改成功了但是id没变可以理解为重命名

4,删除镜像:

[root@docker ~]# docker rmi eeb6ee3f44bd
Error response from daemon: conflict: unable to delete eeb6ee3f44bd (must be forced) - image is referenced in multiple repositories
[root@docker ~]#像上述那样重命名一个有两个一样的id直接删除id会导致系统不知道要删除哪一个

可以直接指定名称删除:

[root@docker ~]# docker rmi centos:7
Untagged: centos:7
Untagged: centos@sha256:be65f488b7764ad3638f236b7b515b3678369a5124c47b8d32916d6487418ea4
[root@docker ~]#

进行查看:(已经删除成功)

[root@docker ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
mycentos     1         eeb6ee3f44bd   16 months ago   204MB

5,配置阿里云镜像加速:

进入阿里云官网:

https://cn.aliyun.com/

6,容器的构建基本操作

-i以交互模式去运行这个容器
-t表示为尾数表示一个输入终端
通常-i和t一起组合运行
[root@docker ~]# docker run -it eeb6ee3f44bd
[root@4f7f394c7b56 /]#
[root@4f7f394c7b56 /]#
[root@4f7f394c7b56 /]# exit
exit
[root@docker ~]#
查看运行的容器:
[root@docker ~]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@docker ~]#无容器运行


[root@docker ~]# docker ps -a
CONTAINER ID   IMAGE          COMMAND       CREATED         STATUS                     PORTS     NAMES
4f7f394c7b56   eeb6ee3f44bd   "/bin/bash"   2 minutes ago   Exited (0) 2 minutes ago             pensive_chatterjee
[root@docker ~]#加上-a表示所有不管正在运行还是没有运行的都显示出来
启动运行的容器:
[root@docker ~]# docker run -itd centos:7
41e2126bc593bfd902080668294ef294301e81c3f2802518189983c1b6eacca4
[root@docker ~]#查看是否运行成功
[root@docker ~]# docker ps
CONTAINER ID   IMAGE      COMMAND       CREATED          STATUS          PORTS     NAMES
41e2126bc593   centos:7   "/bin/bash"   34 seconds ago   Up 34 seconds             admiring_bohr
[root@docker ~]#运行成功

#注意如果上述运行centos:7的时候不加:7的执行结果为会从镜像里面拉去最新的下载执行
停止运行的容器:
[root@docker ~]# docker stop 41e21     #可以不输入全部ID前四五位即可
41e21
[root@docker ~]# docker ps   #查看状态已经没有在运行
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@docker ~]#

#注意(还可以在启动时设置一个名字停止运行时执行名字即可如下)
[root@docker ~]# docker run -itd --name=mycentos centos:7   名字设置为mycentos
fd4223709f41cd45d19817c69b8dbac4b887fdfc3a04da332a6fe4ab04973d01
[root@docker ~]# docker ps  查看是否运行(运行中)
CONTAINER ID   IMAGE      COMMAND       CREATED          STATUS          PORTS     NAMES
fd4223709f41   centos:7   "/bin/bash"   11 seconds ago   Up 10 seconds             mycentos
[root@docker ~]# docker stop mycentos  使用命名关闭容器
mycentos
[root@docker ~]# docker ps 查看是否运行(关闭状态)
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@docker ~]# docker restart mycentos  对命名容器进行重启
mycentos
[root@docker ~]# docker ps   查看状态(启动成功运行中)
CONTAINER ID   IMAGE      COMMAND       CREATED         STATUS         PORTS     NAMES
fd4223709f41   centos:7   "/bin/bash"   2 minutes ago   Up 7 seconds             mycentos
[root@docker ~]# docker ps -a   查看全部
CONTAINER ID   IMAGE          COMMAND       CREATED          STATUS                       PORTS     NAMES
fd4223709f41   centos:7       "/bin/bash"   4 minutes ago    Up 2 minutes                           mycentos
41e2126bc593   centos:7       "/bin/bash"   13 minutes ago   Exited (137) 8 minutes ago             admiring_bohr
4f7f394c7b56   eeb6ee3f44bd   "/bin/bash"   18 minutes ago   Exited (0) 18 minutes ago              pensive_chatterjee
[root@docker ~]#
删除容器:
[root@docker ~]# docker rm 41e2126bc593 4f7f394c7b56  输入容器ID(可以多个)
41e2126bc593
4f7f394c7b56
[root@docker ~]# docker ps -a
CONTAINER ID   IMAGE      COMMAND       CREATED         STATUS         PORTS     NAMES
fd4223709f41   centos:7   "/bin/bash"   9 minutes ago   Up 6 minutes             mycentos
[root@docker ~]#假如要删除正在运行的容器
[root@docker ~]# docker rm fd4223709f41  会出现报错
Error response from daemon: You cannot remove a running container fd4223709f41cd45d19817c69b8dbac4b887fdfc3a04da332a6fe4ab04973d01. Stop the container before attempting removal or force remove
[root@docker ~]#只需加上-f属性就可以进行强制删除
[root@docker ~]# docker rm -f fd4223709f41
fd4223709f41
[root@docker ~]# docker ps -a  查看(没有容器)
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@docker ~]#
查看容器详情信息:
[root@docker ~]# docker run -itd --name=mycentos centos:7  启动容器命名为mycentos
47bf21e86920a03780e6916147f25b10e2f263101633fee30fbb0ee738b5846e
[root@docker ~]# docker ps  查看运行
CONTAINER ID   IMAGE      COMMAND       CREATED          STATUS          PORTS     NAMES
47bf21e86920   centos:7   "/bin/bash"   24 seconds ago   Up 23 seconds             mycentos
[root@docker ~]# docker inspect mycentos  查看详情信息
[
    {
        "Id": "47bf21e86920a03780e6916147f25b10e2f263101633fee30fbb0ee738b5846e",
        "Created": "2023-02-03T07:12:35.675093246Z",
        "Path": "/bin/bash",
        "Args": [],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 11586,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2023-02-03T07:12:35.90377691Z",

进入容器:

[root@docker ~]# docker exec -it mycentos /bin/bash    后缀表示是以什么解释器进入
[root@47bf21e86920 /]# ps -ef  查看当前运行用户
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 07:12 pts/0    00:00:00 /bin/bash
root         15      0  0 07:16 pts/1    00:00:00 /bin/bash
root         29     15  0 07:17 pts/1    00:00:00 ps -ef
[root@47bf21e86920 /]# uname  基于linux
Linux
[root@47bf21e86920 /]# exit   退出
exit
[root@docker ~]#

同时停止运行多个容器:

[root@docker ~]# docker run -itd centos:7   启动一个
475d493ec77156d9576d017b1bc3919c957d21acefdbc331409a5250f5964298
[root@docker ~]# docker run -itd centos:7   启动两个
91b5ba8dfd78c35f674db12f228b5a6b597b228f1d7fd3902811ad88afb98a9e
[root@docker ~]# docker run -itd centos:7   启动三个
3b0d1f2fb104722c3002a3c1af57da7f36902a70915754954b4840b517a03290
[root@docker ~]# docker ps  进行查看
CONTAINER ID   IMAGE      COMMAND       CREATED          STATUS          PORTS     NAMES
3b0d1f2fb104   centos:7   "/bin/bash"   7 seconds ago    Up 7 seconds              epic_hoover
91b5ba8dfd78   centos:7   "/bin/bash"   9 seconds ago    Up 8 seconds              lucid_carver
475d493ec771   centos:7   "/bin/bash"   11 seconds ago   Up 11 seconds             gallant_jackson
47bf21e86920   centos:7   "/bin/bash"   8 minutes ago    Up 8 minutes              mycentos
[root@docker ~]# docker stop $(docker ps -a -q)  停止正在运行的多个容器
3b0d1f2fb104
91b5ba8dfd78
475d493ec771
47bf21e86920
[root@docker ~]# docker ps  查看已停止
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@docker ~]# docker ps -a -q  查看ID
3b0d1f2fb104
91b5ba8dfd78
475d493ec771
47bf21e86920
[root@docker ~]# docker restart $(docker ps -a -q)  进行同时启动多个容器
3b0d1f2fb104
91b5ba8dfd78
475d493ec771
47bf21e86920
[root@docker ~]# docker ps  查看启动状态
CONTAINER ID   IMAGE      COMMAND       CREATED          STATUS         PORTS     NAMES
3b0d1f2fb104   centos:7   "/bin/bash"   3 minutes ago    Up 7 seconds             epic_hoover
91b5ba8dfd78   centos:7   "/bin/bash"   3 minutes ago    Up 7 seconds             lucid_carver
475d493ec771   centos:7   "/bin/bash"   3 minutes ago    Up 7 seconds             gallant_jackson
47bf21e86920   centos:7   "/bin/bash"   11 minutes ago   Up 7 seconds             mycentos
[root@docker ~]#

7,容器的文件复制与挂载

[root@docker ~]# docker run -itd --name=mycentos centos:7  启动命名为mycentos
e37b96055fd48a317cf995213671b4ebc6cac86c9215067d7839f284e972f41b
[root@docker ~]#
[root@docker ~]#
[root@docker ~]# docker ps  查看运行
CONTAINER ID   IMAGE      COMMAND       CREATED         STATUS         PORTS     NAMES
e37b96055fd4   centos:7   "/bin/bash"   5 seconds ago   Up 4 seconds             mycentos
本机传文件进容器:

[root@docker ~]# pwd  查看当前目录
/root
[root@docker ~]# cat > 123.txt  新建一个为123.txt的文档输入lyx内容
lyx
^C
[root@docker ~]# cat 123.txt  查看内容
lyx
[root@docker ~]#将本机root目录下123.txt文档复制到容器/home/目录下
[root@docker ~]# docker cp /root/123.txt mycentos:/home/
Successfully copied 2.048kB to mycentos:/home/
[root@docker ~]# docker exec -it mycentos /bin/bash 进入容器
[root@e37b96055fd4 /]# cd /home/  进入home目录下
[root@e37b96055fd4 home]# ls  查看文档
123.txt
[root@e37b96055fd4 home]# cat 123.txt  查看内容
lyx
[root@e37b96055fd4 home]#
容器传文件到本机:

[root@e37b96055fd4 home]# cat > 456.txt 创建456.txt文档输入内容456
456
^C
[root@e37b96055fd4 home]# cat 456.txt 查看内容
456
[root@e37b96055fd4 home]# exit  退出
[root@docker ~]# docker cp mycentos:/home/456.txt /root/  进行复制
Successfully copied 2.048kB to /root/
[root@docker ~]# ls  本机查看文档
123.txt  456.txt  anaconda-ks.cfg
[root@docker ~]# cat 456.txt  本机查看文档内容
456
[root@docker ~]#
挂载(本机挂载到容器)

[root@docker ~]# mkdir lyx  创建一个为lyx的文件夹
[root@docker ~]# docker run -itd -v /root/lyx/:/home centos:7  -v表示挂载
1b054a890054cd307069c992eef14f58f0d9bad39460f0d252ca46ff32dad837
[root@docker ~]# docker ps  查看运行
CONTAINER ID   IMAGE      COMMAND       CREATED          STATUS          PORTS     NAMES
1b054a890054   centos:7   "/bin/bash"   8 seconds ago    Up 7 seconds              admiring_euler
e37b96055fd4   centos:7   "/bin/bash"   19 minutes ago   Up 19 minutes             mycentos
[root@docker ~]# docker exec -it 1b054a890054 /bin/bash  进入容器
[root@1b054a890054 /]# cd /home  进入目录
[root@1b054a890054 home]# touch 666.txt  创建666.txt文档
[root@1b054a890054 home]# ls  查看
666.txt
[root@docker ~]# cd lyx/  本机进入lyx目录
[root@docker lyx]# ls  进行查看同步显示有666.txt文档
666.txt
[root@1b054a890054 home]# cat > 666.txt 容器书写两行6
666666666666
666666666666
^C
[root@1b054a890054 home]# cat 666.txt 进行查看
666666666666
666666666666
[root@1b054a890054 home]#
[root@docker lyx]# cat 666.txt  本机查看同步输出内容一致
666666666666
666666666666
创建数据卷容器

启动名为mycentos1的容器,要求此容器包含两上数据卷/opt/volume1和/opt/volume2。

[root@docker ~]# docker run -it -v /opt/volume1 -v /opt/volume2 --name mycentos1 centos:7 /bin/bash

[root@74890abe0c22 /]# cd /opt/
[root@74890abe0c22 opt]# ll
total 0
drwxr-xr-x 2 root root 6 Feb 28 02:21 volume1
drwxr-xr-x 2 root root 6 Feb 28 02:21 volume2

[root@74890abe0c22 opt]# 容器内数据卷目录vloume1和volume2已经创建

在宿主机上查看与数据卷对应的目录路径。

[root@docker ~]# docker inspect mycentos1|grep /var/lib/docker/volumes
                "Source": "/var/lib/docker/volumes/32c4edd9e4e960db559390298dce1da0743a52148a8181a74dc27db4d269c3d8/_data",
                "Source": "/var/lib/docker/volumes/253422197ec80ea80c352df6d703e7f254a3d7764e05a0592cb8583ebcef707f/_data",
[root@docker ~]#



从显示结果可以看到与数据卷对应的目录路径

创建mycentos2容器,挂载mycentos1容器种的数据卷。

[root@docker ~]# docker run -it --rm --volumes-from mycentos1 --name mycentos2 centos:7 /bin/bash

[root@b63a62d07d5d /]# cd /opt/
[root@b63a62d07d5d opt]# ll
total 0
drwxr-xr-x 2 root root 6 Feb 28 02:21 volume1
drwxr-xr-x 2 root root 6 Feb 28 02:21 volume2


[root@b63a62d07d5d opt]# 从显示结果上可以看到volume1和volume2数据卷都存在

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

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

相关文章

LLM学习笔记1——本地部署Meta-Llama-3.2-1B大模型

系列文章目录 参考博客 参考博客 文章目录 系列文章目录前言与调用一、部署要求二、实现步骤0.深度学习环境错误1,验证pytorch版本时提示以下问题:错误2,验证pytorch版本时提示以下问题:错误3,有时候还会提示你有一些…

AI安全最佳实践:AI应用开发安全评估矩阵(上)

生成式AI开发安全范围矩阵简介 生成式AI目前可以说是当下最热门的技术,吸引各大全球企业的关注,并在全球各行各业中带来浪潮般的编个。随时AI能力的飞跃,大语言模型LLM参数达到千亿级别,它和Transformer神经网络共同驱动了我们工…

deepseek+kimi自动生成ppt

打开deepseek官网,输入详细的需求,让他生成个ppt 接着deepseek开始思考生成了 接着复制生成了的内容 打开kimi粘贴刚才deepseek生成的内容 可以一键生成啦,下载编辑使用吧

《薄世宁医学通识50讲》以医学通识为主题,涵盖了医学的多个方面,包括医学哲学、疾病认知、治疗过程、医患关系、公共卫生等

《薄世宁医学通识50讲》是一门由薄世宁医生主讲的医学通识课程,该课程旨在通过深入浅出的方式,向广大听众普及医学知识,提升公众对医学的认知和理解。 晓北斗推荐-薄世宁医学通识 以下是对该课程的详细介绍: 一、课程概述 《薄世…

突破与重塑:逃离Java舒适区,借Go语言复刻Redis的自我突破和成长

文章目录 写在文章开头为什么想尝试用go复刻redis复刻redis的心路历程程序员对于舒适区的一点看法关于mini-redis的一些展望结语 写在文章开头 在程序员的技术生涯长河中,我们常常会在熟悉的领域中建立起自己的“舒适区”。于我而言,Java 就是这片承载…

优惠券平台(一):基于责任链模式创建优惠券模板

前景概要 系统的主要实现是优惠券的相关业务,所以对于用户管理的实现我们简单用拦截器在触发接口前创建一个单一用户。 // 用户属于非核心功能,这里先通过模拟的形式代替。后续如果需要后管展示,会重构该代码 UserInfoDTO userInfoDTO new…

TensorFlow域对抗训练DANN神经网络分析MNIST与Blobs数据集梯度反转层提升目标域适应能力可视化...

全文链接:https://tecdat.cn/?p39656 本文围绕基于TensorFlow实现的神经网络对抗训练域适应方法展开研究。详细介绍了梯度反转层的原理与实现,通过MNIST和Blobs等数据集进行实验,对比了不同训练方式(仅源域训练、域对抗训练等&am…

09vue3实战-----引入element-plus组件库中的图标

09vue3实战-----引入element-plus组件库中的图标 1.安装2.引入3.优化 element-plus中的icon图标组件的使用和其他平台组件(如el-button按钮)是不一样的。 1.安装 npm install element-plus/icons-vue2.引入 在这我们只讲述最方便的一种引入方法------完整引入。这需要从elem…

消费电子产品中的噪声对TPS54202的影响

本文章是笔者整理的备忘笔记。希望在帮助自己温习避免遗忘的同时,也能帮助其他需要参考的朋友。如有谬误,欢迎大家进行指正。 一、概述 在白色家电领域,降压转换器的应用非常广泛,为了实现不同的功能就需要不同的电源轨。TPS542…

[Meet DeepSeek] 如何顺畅使用DeepSeek?告别【服务器繁忙,请稍后再试。】

文章目录 [Meet DeepSeek] 如何顺畅使用DeepSeek?告别【服务器繁忙,请稍后再试。】引言使用渠道一:硅基流动 Chatbox AI【推荐】硅基流动 Chatbox AI的优势 使用渠道二:秘塔AI搜索秘塔AI搜索的优势 其它方案1. DeepSeek官网2. 纳…

Websocket从原理到实战

引言 WebSocket 是一种在单个 TCP 连接上进行全双工通信的网络协议,它使得客户端和服务器之间能够进行实时、双向的通信,既然是通信协议一定要从发展历史到协议内容到应用场景最后到实战全方位了解 发展历史 WebSocket 最初是为了解决 HTTP 协议在实时…

学习Cherry Studio AI服务平台,主要是各种功能的实践(deepseek 1.5b和7b的模型+ChatGLM3模型)

Cherry Studio 介绍 Cherry Studio 是一个支持多模型服务的桌面客户端,为专业用户而打造,内置 30 多个行业的智能助手,帮助用户在多种场景下提升工作效率。 CherryStudio内置众多服务商 同时也支持其他兼容OpenAI/Anthropic等API格式的服务…

【实用教程】在 Android Studio 中连接 MuMu 模拟器

MuMu 模拟器是一个非常流行的安卓模拟器,特别适合开发人员进行应用测试,我使用它的根本原因在于Android Studio自带的AVM实现是太难用了,但是Mumu模拟器启动以后不会自动被Android Studio识别到,但是其他模拟器都是能够正常被Andr…

Linux 系统搭建 Python 开发环境全流程

Linux 系统搭建 Python 开发环境全流程 Python 解释器下载 Pycharm 对应版本解压安装包进入解压后的目录启动 Pycharm创建桌面快捷方式(可选)Pycharm 配置创建第一个目录第一个程序运行补充 Python 解释器 确保电脑里已经有了python解释器,没…

第16章 Single Thread Execution设计模式(Java高并发编程详解:多线程与系统设计)

简单来说, Single Thread Execution就是采用排他式的操作保证在同一时刻只能有一个线程访问共享资源。 1.机场过安检 1.1非线程安全 先模拟一个非线程安全的安检口类,旅客(线程)分别手持登机牌和身份证接受工作人员的检查,示例代码如所示。…

【区块链】区块链密码学基础

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 区块链密码学基础引言一、哈希函数1.1 基本概念1.2 数学表达 二、非对称加密2.1…

NCV4275CDT50RKG 车规级LDO线性电压调节器芯片——专为新能源汽车设计的高可靠性电源解决方案

产品概述: NCV4275CDT50RKG 是一款符合 AEC-Q100 车规认证的高性能LDO(低压差线性稳压器),专为新能源汽车的严苛工作环境设计。该芯片支持 输出调节为 5.0 V 或 3.3 V,最大输出电流达 450mA,具备超低静态电流&#xf…

位运算算法篇:进入位运算的世界

位运算算法篇:进入位运算的世界 本篇文章是我们位运算算法篇的第一章,那么在我们是算法世界中,有那么多重要以及有趣的算法,比如深度优先搜索算法以及BFS以及动态规划算法等等,那么我们位运算在这些算法面前相比&#…

高端入门:Ollama 本地高效部署DeepSeek模型深度搜索解决方案

目录 一、Ollama 介绍 二、Ollama下载 2.1 官网下载 2.2 GitHub下载 三、模型库 四、Ollmal 使用 4.1 模型运行(下载) 4.2 模型提问 五、Ollama 常用命令 相关推荐 一、Ollama 介绍 Ollama是一个专为在本地机器上便捷部署和运行大型语言模型&…

Cursor无法使用老版本python debug的解决办法

我服务器上的python版本是3.6.8,使用官方的python插件进行debug的时候,弹窗提示说不支持3.7以下的,建议升级python,但是我的工程就是3.6.8的屎山,辗转发现一个土办法: 手动下载老版本的python插件&#xff…