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

查看当前镜像:

[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.mzph.cn/pingmian/69416.shtml

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

相关文章

人工智能:从概念到未来

人工智能:从概念到未来 一、引言 在当今数字化时代,人工智能(Artificial Intelligence,AI)已从科幻小说和电影中的幻想逐渐走进现实,成为推动社会进步和经济发展的关键力量。它正在深刻地改变着我们的生活…

GitHub Pages + Jekyll 博客搭建指南(静态网站)

目录 🚀 静态网站及其生成工具指南🌍 什么是静态网站?📌 静态网站的优势⚖️ 静态网站 VS 动态网站 🚀 常见的静态网站生成器对比🛠️ 使用 GitHub Pages Jekyll 搭建个人博客📌 1. 创建 GitHu…

字符设备驱动开发

驱动就是获取外设、传感器数据和控制外设。数据会提交给应用程序。 Linux 驱动编译既要编写一个驱动,还要编写一个简单的测试应用程序。 而单片机下驱动和应用都是放在一个文件里,也就是杂在一块。而 Linux 则是分开了。 一、字符设备驱动开发流程 Lin…

SpringCloud - Nacos注册/配置中心

前言 该博客为Nacos学习笔记,主要目的是为了帮助后期快速复习使用 学习视频:7小快速通关SpringCloud 辅助文档:SpringCloud快速通关 一、简介 Nacos官网:https://nacos.io/docs/next/quickstart/quick-start/ Nacos /nɑ:kəʊ…

IDEA安装离线插件(目前提供了MavenHelper安装包)

目录 1、离线安装方式2、Maven Helper 1、离线安装方式 首先访问 IDEA插件网站 下载离线插件安装包,操作如下: 然后打开IDEA的Settings配置,点击Plugins,点击右侧设置按钮(齿轮),选择Install P…

科技赋能数字内容体验的核心技术探索

内容概要 在数字化时代,科技的迅猛发展为我们的生活和工作带来了深刻的变革。数字内容体验已经成为人们获取信息和娱乐的重要途径,而这背后的技术支持则扮演着至关重要的角色。尤其是在人工智能、虚拟现实和区块链等新兴技术的推动下,数字内…

工业相机,镜头的选型及实战

工业相机和镜头的选型是机器视觉系统中的关键步骤,选型不当可能导致成像质量差或系统性能不达标。(用于个人的学习和记录) 一、工业相机选型方法 确定分辨率 分辨率需求:根据被测物体的尺寸和检测精度要求计算所需分辨率。 公式…

使用WebUI访问本地Deepseek(Ollama集成Open WebUI)

在《deepseek本地部署和使用(Linux虚拟机)》中,我们使用Ollama部署了Deepseek-r1,但是只能通过命令行方式交互,默认Ollama启动后,会启动一个监听到127.0.0.1,用以接收POST 请求,服务…

windows蓝牙驱动开发-蓝牙 LE 邻近感应配置文件

邻近感应检测是蓝牙低功耗 (LE) 的常见用途。 本部分提供了创建可用于开发 UWP 设备应用的邻近感应配置文件的设备实现的指南。 在开发此应用之前,应熟悉蓝牙 LE 函数和蓝牙 LE 邻近感应配置文件规范。 示例服务声明 蓝牙低功耗引入了一个新的物理层,…

模型 冗余系统(系统科学)

系列文章分享模型,了解更多👉 模型_思维模型目录。为防故障、保运行的备份机制。 1 冗余系统的应用 1.1 冗余系统在企业管理中的应用-金融行业信息安全的二倍冗余技术 在金融行业,信息安全是保障业务连续性和客户资产安全的关键。随着数字化…

AI绘画社区:解锁艺术共创的无限可能(9/10)

AI 绘画:不只是技术,更是社交新潮流 在科技飞速发展的今天,AI 绘画早已不再仅仅是一项孤立的技术,它正以惊人的速度融入我们的社交生活,成为艺术爱好者们交流互动的全新方式,构建起一个充满活力与创意的社…

DeepSeek使用技巧大全(含本地部署教程)

在人工智能技术日新月异的今天,DeepSeek 作为一款极具创新性和实用性的 AI,在众多同类产品中崭露头角,凭借其卓越的性能和丰富的功能,吸引了大量用户的关注。 DeepSeek 是一款由国内顶尖团队研发的人工智能,它基于先进…

IDEA - 一个启动类多次启动方法

More Run/Debug -> Modify Run Configuration -> modify options -> Allow mutiple instances

TypeScript 中的对象类型:深入理解接口和类型别名

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

【Java基础】序列化、反序列化和不可变类

Hi~!这里是奋斗的明志,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~ 🌱🌱个人主页:奋斗的明志 🌱🌱所属专栏:Java基础面经 📚本系列文章为个…

吴恩达深度学习——卷积神经网络的特殊应用

内容来自https://www.bilibili.com/video/BV1FT4y1E74V,仅为本人学习使用。 文章目录 人脸识别相关定义Similarity函数使用Siamese网络实现函数d使用Triplet损失学习参数 神经风格迁移深度卷积网络可视化神经风格迁移的代价函数内容损失函数风格损失函数 人脸识别 …

搭建linux qt5.6环境

文章目录 准备工作步骤测试 准备工作 1、linux虚拟机环境 2、linux qt安装包相关文件,本文采用压缩包方式 步骤 1)启动虚拟机并登入 2)打开linux终端命令行,ifconfig获取当前linux环境的ip 3)使用WinSCP设置好ip、…

C++ 使用CURL开源库实现Http/Https的get/post请求进行字串和文件传输

CURL开源库介绍 CURL 是一个功能强大的开源库,用于在各种平台上进行网络数据传输。它支持众多的网络协议,像 HTTP、HTTPS、FTP、SMTP 等,能让开发者方便地在程序里实现与远程服务器的通信。 CURL 可以在 Windows、Linux、macOS 等多种操作系…

基础入门-网站协议身份鉴权OAuth2安全Token令牌JWT值Authirization标头

知识点: 1、网站协议-http/https安全差异(抓包) 2、身份鉴权-HTTP头&OAuth2&JWT&Token 一、演示案例-网站协议-http&https-安全测试差异性 1、加密方式 HTTP:使用明文传输,数据在传输过程中可以被…

07苍穹外卖之redis缓存商品、购物车(redis案例缓存实现)

课程内容 缓存菜品 缓存套餐 添加购物车 查看购物车 清空购物车 功能实现:缓存商品、购物车 效果图: 1. 缓存菜品 1.1 问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压…