新闻详情

新闻详情

首页 / 资讯中心 / 详情

Linux学习24-docker相关

发布时间:2026/9/4 17:06:28来源:尧图网络
Linux学习24-docker相关
docker简介Docker 是一个基于 Go 语言开发的开源容器化平台由 Solomon Hykes 于 2013 年首次发布现由 Docker, Inc. 维护它通过操作系统级别的虚拟化技术将应用程序及其所有依赖项运行时、系统工具、库、配置文件等打包为一个轻量级、可移植的标准化单元——容器Container从而实现一次构建随处运行的交付目标核心架构Docker 采用 客户端-服务端Client-Server 架构Docker Daemondockerd运行在宿主机上的后台守护进程负责镜像的构建、容器的创建与管理、网络配置、存储卷挂载等核心操作。Docker Clientdocker CLI用户与 Docker 交互的命令行工具通过 REST API 与 Daemon 通信发送指令并接收响应。Registry镜像仓库集中存储和分发镜像的服务Docker Hub 是其官方公共仓库企业通常部署私有仓库如 Harbor用于内部镜像管理。docker部署配置yum源安装yum工具下载docker社区版启动服务下载管理网络桥接的工具包查看docker配置 Linux 内核的网络参数为 Docker 运行做前置准备让经过桥接网卡的 IPv4 流量也走 iptables 规则使Docker 的端口映射、容器隔离等网络功能正常工作针对ipv6开启 IP 转发。允许宿主机把数据包从一个网卡转发到另一个网卡允许容器访问外网重新加载配置文件使修改生效使用从指定的镜像仓库docker.1ms.run中搜索yakexi007所有公开的镜像从镜像仓库下载拉取mario镜像到本地拉取完成后运行镜像在浏览器访问该机ip即可docker run -d --name demo -p 80:80 docker.1ms.run/yakexi007/mario可以使用docker ps查看镜像情况docker基本概念镜像ImageDocker镜像Image就是一个只读的模板、一个标准化包。镜像可以用来创建Docker容器一个镜像可以创建很多容器。镜像内包含操作系统提供容器运行时所需的所有文件、二进制文件、库和配置等文件外还包含了一些为运行时准备的一些配置参数如环境变量、用户等。镜像不包含任何动态数据其内容在构建之后也不会被改变镜像有两个重要原则镜像是不可变的。镜像一旦创建就无法修改。您只能创建新镜像或在其上添加更改。容器镜像由层组成。每层代表一组添加、删除或修改文件的文件系统更改。容器Container通过镜像创建Docker利用容器Container独立运行的一个或一组应用。容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。可以把容器看做是一个简易版的Linux环境包括root用户权限、进程空间、用户空间和网络空间等和运行在其中的应用程序。容器的实质是进程但与直接在宿主执行的进程不同容器进程运行于属于自己的独立的空间因此容器可以拥有自己的root文件系统、自己的网络配置、自己的进程空间甚至自己的用户ID空间。容器内的进程是运行在一个隔离的环境里使用起来就好像是在一个独立于宿主的系统下操作一样。这种特性使得容器封装的应用比直接在宿主运行更加安全。容器的定义和镜像几乎一模一样也是一堆层的统一视角唯一区别在于容器的最上面那一层是可读可写的。仓库存放镜像的地方仓库类似于应用商店存放的是docker镜像分为公开仓库跟私有仓库。通常仓库可以包含同一个软件不同版本的镜像而标签就常用于对应该软件的各个版本。我们可以通过镜像名:标签的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签将以latest作为默认标签。仓库Repository是集中存放镜像文件的场所。有时候会把仓库和仓库注册服务器Registry混为一谈并不严格区分。实际上仓库注册服务器上往往存放着多个仓库每个仓库中又包含了多个镜像每个镜像有不同的标签tag。Docker使用C/S架构Client通过接口与Server进程通信实现容器的构建运行和发布。client和server可以运行在同一台集群也可以通过跨主机实现远程通信。docker仓库docker hub首先注册账号 https://hub.docker.com/新建仓库客户端登录docker hub[rootserver1 ~]# docker loginLogin with your Docker ID to push and pull images from Docker Hub. If you dont have a Docker ID, head over to https://hub.docker.com to create one.Username: yakexi007 #docker hub注册的用户Password: **** #密码WARNING! Your password will be stored unencrypted in /root/.docker/config.json.Configure a credential helper to remove this warning. Seedocker login | Docker DocsLogin Succeeded上传镜像[rootserver1 ~]# docker tag webserver:v4 yakexi007/webserver:v4[rootserver1 ~]# docker push yakexi007/webserver:v4The push refers to repository [docker.io/yakexi007/webserver]bbed3d4e37e0: Pushed0b3d0512394d: Pushed5b1fa8e3e100: Pushedv4: digest: sha256:013969b9116df5dc77ddaef6c500129439e9db94f46b61b148b43e53900623e5 size: 949registry私有仓库官网Deprecated and retired Docker products and features | Docker Docs拉取registry镜像docker pull registry运行registry仓库docker run -d --name registry -p 5000:5000 -v /opt/registry:/var/lib/registry registry列出容器docker ps -l配置仓库自启动vim/etc/systemd/system/registry.service内容如下[Unit]DescriptionRegistryRequiresdocker.serviceAfterdocker.service[Service]TypesimpleRestartalwaysExecStart/usr/bin/docker start -a registryExecStop/usr/bin/docker stop registry[Install]WantedBymulti-user.target刷新配置systemctl daemon-reload停止容器docker stop registry设置开机自启systemctl enable --now registrydocker ps -l上传镜像docker tagbusybox:latest localhost:5000/busybox:latestdocker push localhost:5000/busybox查询镜像[rootserver1 ~]# curlhttp://localhost:5000/v2/_catalog{repositories:[busybox]}[rootserver1 ~]#curlhttp://localhost:5000/v2/busybox/tags/list{name:busybox,tags:[latest]}下载镜像[rootserver1 ~]# docker pull localhost:5000/busyboxinsecure registry配置使用非加密端口(替换为实际仓库IP)[rootserver2 ~]# vim /etc/docker/daemon.json{insecure-registries : [http://192.168.56.11:5000]}[rootserver2 docker]# systemctl restart docker拉取镜像[rootserver2 docker]# docker pull 192.168.56.11:5000/nginx仓库加密下载并升级软件包Rocky Linux 9 无需安装https://mirrors.aliyun.com/epel/7/x86_64/Packages/o/openssl11-1.1.1k-7.el7.x86_64.rpmhttps://mirrors.aliyun.com/epel/7/x86_64/Packages/o/openssl11-libs-1.1.1k-7.el7.x86_64.rpm[rootserver1 ~]# yum install -y openssl11-1.1.1k-7.el7.x86_64.rpm openssl11-libs-1.1.1k-7.el7.x86_64.rpm添加域名解析[rootserver1 ~]# vim /etc/hosts...192.168.56.11 server1 reg.westos.org[rootserver1 ~]# mkdir certs[rootserver1 ~]# openssl11 req -newkey rsa:4096 -nodes -sha256 -keyout certs/westos.org.key -addext subjectAltName DNS:reg.westos.org -x509 -days 365 -out certs/westos.org.crt域名保持一致[rootserver1 ~]# docker run -d -p 443:443 --restartalways --name registry -v /opt/registry:/var/lib/registry -v /root/certs:/certs -e REGISTRY_HTTP_ADDR0.0.0.0:443 -e REGISTRY_HTTP_TLS_CERTIFICATE/certs/westos.org.crt -e REGISTRY_HTTP_TLS_KEY/certs/westos.org.key registry部署客户端证书不然会报错[rootserver1 ~]# docker tag nginx:latest reg.westos.org/nginx:latest[rootserver1 ~]# docker push reg.westos.org/nginx:latest The push refers to repository [reg.westos.org/nginx]Get https://reg.westos.org/v2/: x509: certificate signed by unknown authority[rootserver1 ~]# mkdir -p /etc/docker/certs.d/reg.westos.org/[rootserver1 ~]# cp /root/certs/westos.org.crt /etc/docker/certs.d/reg.westos.org/ca.crt验证[rootserver1 ~]# docker push reg.westos.org/nginx:latest[rootserver1 reg.westos.org]# curl -k https://reg.westos.org/v2/_catalog{repositories:[nginx]}仓库认证[rootserver1 ~]# yum install -y httpd-tools[rootserver1 ~]# mkdir auth[rootserver1 ~]# htpasswd -Bc auth/htpasswd adminNew password:Re-type new password:Adding password for user admin第二次添加不要加“-c”选项不然会覆盖[rootserver1 ~]# htpasswd -B auth/htpasswd wxhNew password:Re-type new password:Adding password for user wxh[rootserver1 ~]# cat auth/htpasswdadmin:$2y$05$Wm2LHttPY5a6i2KMG0fShe92d/PjnaBbGitiClcE3wqHmwO8dIDFmwxh:$2y$05$9rE9CXyZ1fdcMammhh7f6.soDHgKdSsi0DXBgkRW5sKRw5sEJo1lK删除registry重建[rootserver1 ~]# docker rm -f registry[rootserver1 ~]# docker run -d -p 443:443 --restartalways --name registry -v /opt/registry:/var/lib/registry -v /root/certs:/certs -e REGISTRY_HTTP_ADDR0.0.0.0:443 -e REGISTRY_HTTP_TLS_CERTIFICATE/certs/westos.org.crt -e REGISTRY_HTTP_TLS_KEY/certs/westos.org.key -v /root/auth:/auth -e REGISTRY_AUTHhtpasswd -e REGISTRY_AUTH_HTPASSWD_REALMRegistry Realm -e REGISTRY_AUTH_HTPASSWD_PATH/auth/htpasswd registry登录仓库不然无法上传下载[rootserver1 ~]# docker login reg.westos.orgUsername: adminPassword:WARNING! Your password will be stored unencrypted in /root/.docker/config.json.Configure a credential helper to remove this warning. Seehttps://docs.docker.com/engine/reference/commandline/login/#credentials-storeLogin Succeeded[rootserver1 ~]# cat .docker/config.json{auths: {reg.westos.org: {auth: YWRtaW46d2VzdG9z}}}验证[rootserver1 ~]# docker tag busybox:latest reg.westos.org/busybox:latest[rootserver1 ~]# docker push reg.westos.org/busybox:latest[rootserver1 ~]# curl -k https://reg.westos.org/v2/_catalog -u admin:westos{repositories:[busybox,nginx]}登出[rootserver1 ~]# docker logoutreg.westos.orgserver2上移除非安全仓库设置[rootserver2 docker]# mv daemon.json /mnt/[rootserver2 docker]# systemctl restart docker添加解析[rootserver2 ~]# vim /etc/hosts...192.168.56.11 替换为自己的ipserver1 reg.westos.org拷贝证书[rootserver1 ~]# cd /etc/docker/[rootserver1 ~]# scp -r certs.d/ server2:/etc/docker/登录远程仓库[rootserver2 docker]# docker login reg.westos.orgUsername: wxhPassword:WARNING! Your password will be stored unencrypted in /root/.docker/config.json.Configure a credential helper to remove this warning. Seedocker login | Docker DocsLogin Succeeded拉取镜像[rootserver2 docker]# docker pull reg.westos.org/busyboxUsing default tag: latestlatest: Pulling from busybox205dae5015e7: Pull completeDigest: sha256:907ca53d7e2947e849b839b1cd258c98fd3916c60f2e6e70c30edbf741ab6754Status: Downloaded newer image for reg.westos.org/busybox:latestreg.westos.org/busybox:latest
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

WorkBuddy AI办公助手教程:从安装到Word/Excel/PPT全流程实战 2026/9/4 20:28:32

WorkBuddy AI办公助手教程:从安装到Word/Excel/PPT全流程实战

提到“办公三件套”,大多数打工人第一反应是 Word 写文档、Excel 做表格、PPT 做汇报。这三类工作看起来并不难,真正耗时间的却是排版调格式、整理脏数据、把结论变成一页页能讲的内容。WorkBuddy 这类 AI 办公助手出现后,很多人的第一反应是…

阅读更多 →
工业级安全帽检测数据集:光照遮挡鲁棒性与国标合规标注 2026/9/4 20:28:32

工业级安全帽检测数据集:光照遮挡鲁棒性与国标合规标注

简介:本资源是面向工业智能安防与计算机视觉算法研发者的高质量安全帽目标检测数据集,专为YOLO等主流模型训练与部署设计,解决施工现场人员防护装备合规性自动识别难题。数据集共1775张真实工地场景图像(含室内外、高空、设备操作…

阅读更多 →
STM32正弦波FOC开发套件:工业级硬件设计与定点算法实现 2026/9/4 20:28:32

STM32正弦波FOC开发套件:工业级硬件设计与定点算法实现

简介:本资源是一套面向嵌入式电机控制开发者与高校电类专业学习者的STM32马达控制完整实践套件,聚焦正弦波磁场定向控制(FOC)这一高性能电机驱动核心技术,解决从理论理解、硬件搭建到算法实现的全链路学习与开发难题。…

阅读更多 →
从工厂现场到集团经营:先进制造如何构建数据决策闭环 2026/9/4 20:28:32

从工厂现场到集团经营:先进制造如何构建数据决策闭环

导语 多数先进制造集团完成产线数字化改造后,普遍面临产线现场数据与集团经营数据脱节、跨层级决策协同效率低的痛点,很多企业的数字化建设停留在“看数”阶段,没有形成从一线执行到集团战略的持续决策优化闭环。 先进制造构建数据决策闭环&a…

阅读更多 →
先进制造企业如何通过统一指标口径搭建经营闭环? 2026/9/4 20:28:31

先进制造企业如何通过统一指标口径搭建经营闭环?

导语 随着先进制造企业集团化发展,多工厂、多基地布局成为常态,不少集团管理层在做经营分析的时候,都会遇到一个头疼的问题:同一个指标,不同工厂报上来的数据不一样,各部门各说各话,一次集团经…

阅读更多 →
基于WebGIS的航班动态可视化系统:从Vue+OpenLayers到PostGIS全栈实践 2026/9/4 20:25:30

基于WebGIS的航班动态可视化系统:从Vue+OpenLayers到PostGIS全栈实践

简介:本资源是一个面向本科毕业设计与课程设计的WebGIS航班可视化系统,基于MATLAB算法实现全国主要机场航班数据的查询、解析与动态展示,适用于地理信息科学、交通运输工程及计算机相关专业学生开展空间数据分析与前端可视化实践。压缩包共85…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞