首页 文章 精选 留言 我的

精选列表

搜索[玲珑应用],共10000篇文章
优秀的个人博客,低调大师

Docker容器技术配置部署与应用(下)

## 4 下载镜像并运行容器 下载镜像前,需要先开启Docker相关服务,并确保存储驱动配置正确。 (1)配置Docker存储驱动 不同系统环境可能导致Docker默认存储驱动(overlayfs/overlay2)不一致,执行以下命令,显式指定Docker默认存储驱动为overlay2,以保证一致性。 Target# vi /etc/docker/daemon.json //编辑Docker工具配置文件 ![wKgZPGrViYGAPRoGAAAHf6xbjLg326.png](https://developer.qcloudimg.com/http-save/8546319/86a8cb0067c20ea2356d9e302988878d.png) 请在daemon.json中添加如下配置内容: { "storage-driver": "overlay2" } ![wKgZO2rViZSAfZsJAAAIU5jVAQg677.png](https://developer.qcloudimg.com/http-save/8546319/5774de99cb3c29f739cb9ac28456cd5f.png) (2)开启Docker相关服务 Target# systemctl enable docker //开启docker服务 Target# systemctl enable containerd //开启containerd服务(docker容器) ![wKgZPGrViaOAUFO3AAA30RjTyng840.png](https://developer.qcloudimg.com/http-save/8546319/a5e4b0ba3ae90057314b6968ad119d3c.png) 开启后请重启单板机。 ## 4.1下载多个镜像并运行容器 (1)请使用网线将单板机任意LAN网口连接至路由器,并确保和Ubuntu处于同一网络下,单板机上电启动,执行如下命令下载镜像并列举出下载后的镜像。 Target# docker pull 192.168.12.54:5000/led_flash:v1.0 //下载镜像 Target# docker images //列举已下载的镜像 ![wKgZO2rVibOAar9yAABenlfKiPU620.png](https://developer.qcloudimg.com/http-save/8546319/5942ad3c687422760c291accaba735cf.png) 若出现如下错误,请执行如下命令,通过修改"/etc/docker/daemon.json"文件来解决此问题,修改保存后,重新启动dockerd守护进程。 ![wKgZPGrVicGAdfRmAAAfBB3y4-g023.png](https://developer.qcloudimg.com/http-save/8546319/1e7c607d390b654bc5043617b5b3a5cd.png) Target# vi /etc/docker/daemon.json ![wKgZO2rVic2AUiz6AAAHlRyvgz0938.png](https://developer.qcloudimg.com/http-save/8546319/24f191efe8c797579371db9c0da747d5.png) 请在daemon.json中添加如下配置内容: { "insecure-registries": ["192.168.12.54:5000"] } ![wKgZPGrVidqAWeTCAAARiaL50U4633.png](https://developer.qcloudimg.com/http-save/8546319/06d6f7a961f77ed45122697fed7a12e1.png) Target# systemctl restart docker ![wKgZPGrVieyAfcARAAAIuswxStM769.png](https://developer.qcloudimg.com/http-save/8546319/4b46c56c672c27ebdfbbfd91048bf7fa.png) (2)修改标签名称。 Target# docker tag 192.168.12.54:5000/led_flash:v1.0 led_flash //为本地已有的Docker镜像创建一个新的标签 Target# docker images //列举已下载的镜像 ![wKgZO2rVifiAS9cmAAA0XvIjF-4551.png](https://developer.qcloudimg.com/http-save/8546319/a42b83f95cc9426412f37f417d6f8651.png) (3)删除旧标签名称。 Target# docker rmi 192.168.12.54:5000/led_flash:v1.0 ![wKgZPGrVigqAe3fSAABB6MuBx2o205.png](https://developer.qcloudimg.com/http-save/8546319/a9eb289521b4925f83df897acfba90db.png) (4)创建并启动容器。 Target# docker run -itd --name led_flash --platform linux/arm/v7 -v /sys/:/sys led_flash 参数说明: -itd:以交互模式运行容器,并将容器的标准输入连接到交互终端,以守护进程模式运行容器; --platform:指定容器运行的平台; --name:为容器指定一个名称; -v:映射卷(将主机的目录"/sys"映射至容器的"/sys"); led_flash:镜像名字。 ![wKgZO2rVihmAP8U3AABtAbuMqFo967.png](https://developer.qcloudimg.com/http-save/8546319/f3318d39efae5a71b0d17e2d6797a7e7.png) 容器启动完成后,单板机用户指示灯闪烁。执行如下命令,可查看当前容器占用资源情况。"MEM USAGE"表示容器占用内存;"LIMIT"表示容器可使用的最大内存。 Target# docker stats ![wKgZPGrViiiAbzoUAAAGLYIBLKo951.png](https://developer.qcloudimg.com/http-save/8546319/19b4d1f30ca763056556aae5d8a53586.png) ![wKgZPGrViiiAJofoAAAWz18CyQc645.png](https://developer.qcloudimg.com/http-save/8546319/ce09c3e6fc81c81a74f046856ad0b7a0.png) (5)容器的基本操作。 执行如下命令,查看正在运行的容器并进入容器。 Target# docker ps Target# docker exec -it led_flash /bin/bash 参数说明: -i:以交互模式运行容器,通常与-t同时使用; -t:为容器重新分配一个伪输入终端,通常与-i同时使用; led_flash:容器名称,以实际"NAMES"为准; /bin/bash:在容器内执行"/bin/bash"命令。 ![wKgZO2rVijuAEPi9AAAt2QzAOfQ195.png](https://developer.qcloudimg.com/http-save/8546319/1819f41b1c06d7d49a4f37ef1f27c296.png) 执行如下命令,退出容器。 Bash# exit ![wKgZO2rVikiAQRJ2AAAIbnjEB9Y522.png](https://developer.qcloudimg.com/http-save/8546319/1958b56f8ac3bd8c72493f740a524671.png) 执行如下命令,停止容器。此时,单板机用户指示灯不再闪烁。 Target# docker stop led_flash ![wKgZO2rVilSAbeRlAAAwyUUEJUw783.png](https://developer.qcloudimg.com/http-save/8546319/ff002be476c9bed7dad9aa6450d8fd1b.png) 执行如下命令,启动容器。此时,单板机用户指示灯闪烁。 Target# docker start led_flash ![wKgZO2rVil-AKxC8AABA6zaldUE894.png](https://developer.qcloudimg.com/http-save/8546319/f54136bc802cc1c85bd5f32d6eefbb3c.png) ## 4.2下载多个镜像并运行容器 (1)请使用网线将单板机任意LAN网口连接至路由器,并确保和Ubuntu处于同一网络下,单板机上电启动,执行如下命令下载镜像并列举出下载后的镜像。 Target# docker pull 192.168.12.54:5000/docker_container_1_echo.sh:v1.0 //下载镜像,192.168.12.54为Ubuntu的IP地址 Target# docker pull 192.168.12.54:5000/docker_container_2_echo.sh:v1.0 Target# docker pull 192.168.12.54:5000/docker_container_3_echo.sh:v1.0 Target# docker images //列举已下载的镜像 备注:由于led_flash镜像已在“下载单个镜像并运行容器”章节中下载、创建并启动容器,因此本章节不再演示。 ![wKgZO2rVim2AXZ0nAACE1vH1Ijk765.png](https://developer.qcloudimg.com/http-save/8546319/5df8d77a88d85272fc58c59489075be8.png) (2)修改标签名称。 Target# docker tag 192.168.12.54:5000/docker_container_1_echo.sh:v1.0 container_1_echo Target# docker tag 192.168.12.54:5000/docker_container_2_echo.sh:v1.0 container_2_echo Target# docker tag 192.168.12.54:5000/docker_container_3_echo.sh:v1.0 container_3_echo ![wKgZO2rVin2AWYFjAACE6Df-bzY298.png](https://developer.qcloudimg.com/http-save/8546319/4271bbc19ce0a5248164818f575ab73a.png) (3)删除旧标签名称。 Target# docker rmi 192.168.12.54:5000/docker_container_1_echo.sh:v1.0 Target# docker rmi 192.168.12.54:5000/docker_container_2_echo.sh:v1.0 Target# docker rmi 192.168.12.54:5000/docker_container_3_echo.sh:v1.0 ![wKgZPGrVioqAS_9fAACxrHqATCY845.png](https://developer.qcloudimg.com/http-save/8546319/56eebe1298aba8700892723309d99ca8.png) (4)执行如下命令,创建并启动容器。 Target# docker run -itd --platform linux/arm/v7 --name docker_container_1_echo container_1_echo /bin/bash Target# docker run -itd --platform linux/arm/v7 --name docker_container_2_echo container_2_echo /bin/bash Target# docker run -itd --platform linux/arm/v7 --name docker_container_3_echo container_3_echo /bin/bash 参数说明: -itd:以交互模式运行容器,并将容器的标准输入连接到交互终端,以守护进程模式运行容器; --platform:指定容器运行的平台; --name:为容器指定一个名称; container_1_echo、container_2_echo、container_3_echo:镜像名称。 /bin/bash:执行/bin/bash命令阻塞docker容器,防止容器自动退出,以便能进入容器运行脚本。 ![wKgZPGrVipWAGCssAAEZRcZKzL0362.png](https://developer.qcloudimg.com/http-save/8546319/93877dcc2d7477c462e45cd95c94e044.png) 容器启动完成后,可执行如下命令查看当前容器占用资源情况。 Target# docker stats ![wKgZPGrViqKAA1F5AAAHS0uKD6o077.png](https://developer.qcloudimg.com/http-save/8546319/f48225b8b661821040c20b1337479664.png) ![wKgZO2rViqOAIvRBAAA9LUaid_E486.png](https://developer.qcloudimg.com/http-save/8546319/1c8d0e370e1c02b9c1b637ac946a3100.png) (5)容器的基本操作 执行如下命令,查看正在运行的容器,并进入"docker_container_2_echo"容器。 备注:"docker_container_1_echo"、"docker_container_3_echo"容器可参考该操作进行测试。 Target# docker ps Target# docker exec -it docker_container_2_echo /bin/bash 参数说明: -i:以交互模式运行容器,通常与-t同时使用; -t:为容器重新分配一个伪输入终端,通常与-i同时使用; docker_container_2_echo:容器ID,以实际"NAMES"为准; /bin/bash:在容器内执行"/bin/bash"命令。 ![wKgZO2rVirSAbdcGAABRGfmWrio754.png](https://developer.qcloudimg.com/http-save/8546319/50df92df4425479197e5e87dbfe0a5a4.png) 执行如下命令,可查看脚本打印信息。 Target# ./docker_container_2_echo.sh ![wKgZO2rVir6AA7ToAAAPnxASfsg317.png](https://developer.qcloudimg.com/http-save/8546319/28cd55414a8773a2a4e6bec15b3be90d.png) 执行如下命令,退出该容器。 Bash# exit ![wKgZO2rVismAG2hNAAAITAtgs_s284.png](https://developer.qcloudimg.com/http-save/8546319/ff5985cf07e70bef22e3dfdbad08d7f4.png) ## 附录:Docker镜像使用概况 本附录主要说明安装Docker镜像前后对文件系统磁盘空间资源占用情况以及内存占用情况。 ## 1未下载Docker镜像 进入单板机文件系统,执行如下命令,查看当前系统未下载Docker镜像时的磁盘使用情况。 Target# df -h ![wKgZPGrVitmAQ3FWAAAkuEpbxaI500.png](https://developer.qcloudimg.com/http-save/8546319/e145e256be336eb89ef97aa441120594.png) ## 2已下载Docker镜像 执行如下命令,查看系统已下载4个Docker镜像时的磁盘使用情况以及Docker磁盘空间使用情况。 Target# df -h Target# docker system df //查看Docker磁盘空间使用情况 ![wKgZPGrViuaAC8BMAACZX5Fa6ok824.png](https://developer.qcloudimg.com/http-save/8546319/b4892f20193253d5626f2170b36772aa.png) ![wKgZO2rViuaAPAHSAAAfrIy6DQA076.png](https://developer.qcloudimg.com/http-save/8546319/66975e20bdda44812f070afb1da1e944.png) 可以查看到4个Docker镜像与容器占用内存的总大小约为55.32MByte。由于构建Docker镜像的文件系统是同一个,而Docker镜像中相同的内容会重叠在一起,不需重新占用内存,因此4个Docker镜像和容器占用的内存总大小约为55.32MByte。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册