范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

阿里内部资料4天实战轻松玩转docker03

  我们不是标题党,我们致力于"反卷",打造良好的互联网环境,让更多的人能远离"某些机构"的忽悠;在阿里规章制度允许的条件下,将更多的内部文档、资料、视频分享给大家,希望大家多多关注,持续为大家分享
  docker 的实际运用
  一、docker 基础命令(下)
  这是 docker 基础命令下半部分的学习。
  从天池基础镜像中获取
  pythondocker pull 天池镜像:标签;
  docker 构建镜像 docker?build?-t?registry.cn-shanghai.aliyuncs.com/target:myversion
  docker 构建镜像并指定 DockerFile docker?build?-f?./dockerfile?-t?registry.cn-shanghai.aliyuncs.com/target:myversion 设置默认工作目录
  add . /目录名称
  镜像启动后-----执行
  sh run.sh,我们目前使用 cmd ["sh","run.sh"]
  查看镜像或容器的详细信息:
  docker inspect [容器 ID/镜像名:tag]
  给镜像添加一个软链接并改名和标签:
  docker tag [oldname:tag]
  [newname:tag]
  删除镜像:
  docker rmi 镜像:tag/镜像 ID
  容器和宿主机之间文件复制
  docker cp [文件目录 容器 ID:内部路径]
  docker cp [容器 ID:内部路径 文件目录]
  二、dockerfile 1、案例一
  1)搜索 busybox 的镜像,并确保为官方镜像。
  2)docker 下载该镜像 busybox 的镜像。
  3)给镜像创建一个软链接并改名 box:v1。
  4)再创建一个软链接改名为 box:v2。
  5)删除 box:v2 镜像。
  *操作流程*
  1)启动虚拟机,检查防火墙和 Slinux 是否关闭
  [root@docker ~] systemctl status firewalld [root@docker ~] getenforce 0
  2)检查 docker 是否启动
  [root@docker ~] systemctl status docker
  3)查看 busybox 镜像
  [root@docker ~] docker search busybox
  4)下载 busybox 镜像并检查是否成功
  [root@docker ~] docker pull busybox [root@docker ~] docker images
  5)给镜像创建一个软链接并改名 box:v1 并检查是否成功
  [root@docker ~] docker images
  [root@docker ~] docker tag busybox:latest box:v1 查看 ImageID,如果一样则软连接成功
  6)再创建一个软链接改名为 box:v2。
  [root@docker ~] docker tag busybox:latest box:v2 (7)删除 box:v2 镜像
  [root@docker ~] docker rmi box:v2 至此,第一个案例就此完成。
  2、案例二
  [root@docker ~] (没有文件自行创建)
  1)下载 centos:7 镜像。并用该镜像启动容器,命名为 centostest,暴露 6446 宿主机端口,映 射容器内 999 端口。
  2)将宿主机/root/docker.txt 复制到容器内/user/local/。
  3)再从该容器内的/root/docker.txt 文件复制到宿主机/tmp。
  4)删除该容器。
  *操作流程*
  [root@docker ~] docker run -itd -p 6449:999 --name centostest centos:7 参数解释:
  -itd:固定写法
  -p:暴露的端口号
  --name:修改名字
  1)用该镜像启动容器,命名为 centostest,暴露 6446 宿主机端口,映射容器内 999 端口
  3)查看容器是否启动成功
  [root@docker ~] docker ps
  4)将宿主机/root/magegood.txt 复制到容器内/usr/local/
  [root@docker ~] touch docker.txt
  [root@docker ~] docker cp docker.txt 96f7e0daf062:/usr/local 验证
  [root@docker ~] docker exec -it 96f7e0daf062 /bin/bash [root@docker ~] ls /usr/local
  5)再从该容器内的/root/docker.txt 文件复制到宿主机/tmp
  [root@docker tmp] ls /tmp
  [root@docker tmp] docker cp 96f7e0daf062 :/root/docker.txt /tmp
  6)删除该容器并检查
  删除前需要停掉
  [root@docker ~] docker stop 96f7e0daf062
  [root@docker ~] docker rmi 96f7e0daf062
  [root@docker ~] docker ps
  注意:使用 search 搜索 centos:7 是找不到官方版本的 [root@docker ~] docker search centos:7
  [root@docker ~] docker search centos tag 即可搜索官方的
  三、dockerfile 是否可以被替代?
  1、概述
  dockerfile 可以理解为一个制作镜像的脚本,但远没有脚本复杂。他根据某种格式自定义内容, 就可以快速创建出需求的镜像。
  docker 的实际运用 < 40
  docker 容器启动的时候在最上层挂载了一个可写层,比如说我在容器里面创建一个文件,这个 文件是存放在可写层的,这时候容器要是销毁了,那么我们对容器的一些写入操作也就没了, 我这个文件也会随着容器销毁而销毁了,我们要是想要保存我们对容器的一些写入操作的话, 可以使用 commit 命令然后将容器制作成一个镜像,这样下次 run 起来该镜像的时候,我们之 前的写入操作就还存在了。
  除了使用 commit 方式制作镜像,还有一种方式就是编写 dockerfile ,然后使用 build 命令来 制作镜像了。2、dockerfile 的规则格式: 是注释 指令建议要大写,内容小写。
  执行顺序:
  docker 是按照 dockerfile 指令顺序依次执行的,也就是说从上到下。3、指令
  这个 FROM 指令是 dockerfile 的第一个指令,指定了基础镜像,后面的所有指令都是运行在该 基础镜像环境上的 MAINTAINER,该指令是描述的维护者信息。 底层的系统镜像用的是什么,使用 from 指定,绝大部分情况都用的底层有个系统或者基础的环 境用的是什么,对 docker 不熟练使用 centos 镜像即可。
  1)FROM:底层镜像(如系统)
  2)RUN:构建时容器内运行的命令
  RUN 指令用于在容器中执行命令。我们常用来安装基础软件。 镜像安装软件依赖包都可以放在 RUN 中。
  3)COPY:复制 docker 目录中的文件到镜像中
  4)ADD:复制 docker 目录中的文件到镜像中。(过程可以解压)
  ADD 指令是用来将宿主机某个文件或目录放到(复制)容器某个目录下面。 官方不推荐 ADD,高级复制功能,需求不精准,推荐使用 COPY。
  5)EXPOSE:声明开放端口
  EXPOSE 指令用于暴露容器里的端口,我们在 3.5 里面演示过了,nginx 暴露的端口是 80,但 是启动容器的时候需要指定宿主机端口来映射暴露的端口。需要暴露多个端口的话可以使用多 个 EXPOSE,也可以一个 EXPOSE 指令后面跟多个端口,端口之间用空格隔开。 声明不是变更,变更使用-p 构建容器时候使用。
  6)ENV:设置环境变量
  ENV 指令是用于设置环境变量的。 底层环境变量需要需提前设置。
  7)CMD:容器启动时执行的命令,最多只能执行一条
  CMD 指令是你在容器启动的时候帮你运行的命令,而 RUN 这个指令是构建镜像的时候帮你运 行的命令。
  容器启动时执行命令,最多执行一条。
  WORKDIR 是指下面的指令都在 WORKDIR 指定目录下面工作,这个与 linux 里面的 cd 差不 多。
  切换目录使用 WORKDIR。 做容器轻量级最好,比较小就很好,使用一条命令就不要使用两条命令4、dockerfile 步骤
  1)创建 dockerfile 目录,名字可以自定义。 在大目录里面创建各种小目录和文档,比较有层次。 2)在该目录中编辑 dockerfile。
  3)用 COPY 或 ADD,需要把被 COPY 文件提前放到 dockerfile 目录中。 4)官方推荐用 COPY,如果需要过程中解压,用 ADD。
  5)CMD 字段,需要用["命令","选项 1"]这种格式书写。 强制格式写法,必须使用["命令","选项 1"],类似于 python 的数组。
  6)CMD 字段只能写一条命令,且这条命令尽量是前台执行的命令。如果是后台命令,这条命 令结束,docker 就会自动关闭。区别:前台执行命令和后台执行命
  1)后台命令:
  当在前台运行某个作业时,终端被该作业占据;而在后台运行作业时,它不会占据终端。可以 使用命令把作业放到后台执行。当在后台执行命令时,可以继续使用你的终端做其他事情。比 如 cd/tmp 作为主进程,fork 出来 shell 进程,一旦执行这条后台命令,会顶掉 PID 为 1 的进程, 整个 docker 就挂掉了。
  注意:经常操作的 shell 命令都属于后台命令
  2)前台命令:
  CMD 属于前台命令没有特殊操作会一致出现。
  四、docker 的前世今生
  1、dockerfile 操作测试
  1)用 dockerfile 构建镜像:
  docker build -t(设置要构建镜像的名字,最后要加.) 创建基础镜像
  docker 提供了两种方法来创建基础镜像
  一种是通过引入 tar 包的形式,
  另外一种是通过一个空白的镜像来一步一步构建
  scratch 是 docker 保留镜像,镜像仓库中的任何镜像都不能使用这个名字,使用 FROM scratc h 表明我们要构建镜像中的第一个文件层。
  如果我们有一个 Linux 下可执行的二进制文件,可以构建一个简单的镜像,仅执行这个二进制。 构建的过程很简单,执行如下命令。
  $ docker build -t chello:0.1 .
  通过 docker images 命令可以本地的镜像。
  $ docker images
  2)再运行镜像:
  docker run -itd -p 8800:80 [image:tag]
  docker 中的容器运行在操作系统中,共享了操作系统的内核。对于在 Mac、Windows 平台下, 则是基于 Linux 虚拟机的内核。
  而 Linux 内核仅提供了进程管理、内存管理、文件系统管理等一些基础的管理模块。除此之外, 我们还需要一些 Linux 下的管理工具,包括 ls、cp、mv、tar 以及应用程序运行依赖的一些包。 因此我们就需要首先构建一个 Minimal 的操作系统镜像,在此基础上构建 Python 环境,再构 建应用镜像。这样就实现了镜像文件分层,今后如果我们需要更新 Python 版本,那么只需要对 这一层进行更新就可以。
  3)查看镜像:
  docker ps -a 确认是启动状态
  docker 的镜像实际上由一层一层的文件系统组成,这种层级的文件系统就是上文说到的 UnionFS。在 docker 镜像的最底层是 bootfs。这一层与我们典型的 Linux/Unix 系统是一样的, 包含 boot 加载器和内核。
  当 boot 加载完成之后整个内核就都在内存中了,此时内存的使用权已由 bootfs 转交给内核, 此时系统也会卸载 bootfs。docker 在 bootfs 之上的一层是 rootfs(根文件系统)。rootfs 就是 各种不同的操作系统发行版,比如 Ubuntu,Centos 等等。docker 核心技术与实现原理 这篇 文章,作者阅读了 rootfs 的规范,指出构建 rootfs 一些必须的文件夹。
  4)测试:
  宿主机用浏览器访问 IP+port 看是否启动成功。
  2、dockerfile 案例 1
  1)用 dockerfile 创建并启动一个 centos 的 apache 镜像。指定自定义内容。
  FROM centos:7
  RUN yum -y install httpd
  EXPOSE 80
  COPY index.html /usr/share/httpd/noindex/index.html CMD ["/usr/sbin/httpd","-D","FOREGROUND"]
  2)构建镜像
  [root@docker apache]# docker build -t apache :v1 .
  看到 successfully 即安装成功。
  3)验证
  [root@docker apache] docker run -itd -p 345:80 apache:v1 [root@docker apache] docker ps
  通过访问宿主机 ip 端口,查看 true,防火墙关闭。
  3、dockerfile 案例 2
  1)用 dockerfile 创建并启动一个 centos7 的 nginx 镜像。
  FROM centos:7 RUNrpm-Uvhhttp://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el 7.ngx.noarch.rpm
  RUN yum -y install nginx
  EXPOSE 80
  CMD ["nginx","-g","daemon off;"]
  2)创建
  [root@docker nginx]#docker bulid -t nginx:v1 .
  3)创建容器
  [root@dockernginx]# docker run -itd -p 456:80
  4)验证
  通过访问宿主机的 ip+端口,查看 nginx,防火墙关闭。

世界顶级跳水盛宴下月古城见!2023年世界泳联跳水世界杯首站4月14日西安开赛2023年世界泳联跳水世界杯(西安)新闻发布会3月29日上午举行,记者从会上获悉,此次比赛将于4月14日在西安奥体中心游泳跳水馆开湖北区划优化思考,减少5市,天潜仙合并,黄冈改名黄州近年来,随着我国经济结构的不断调整,区域合作更加紧密,一体化高质量发展已经成为引领经济社会发展的新趋势。湖北省,位于我国中部地区,长江中游,是楚文化的重要源头和中华文明的发源地之一大疆发布全新飞行眼镜及穿越摇杆,极致沉浸式飞行体验再进化DJI大疆于今日发布运用于第一人称视角飞行的DJI飞行眼镜一体版,以及通过体感技术进行操控的DJI穿越摇杆2。两款新产品延续了大疆FPV系列注重飞行体验的产品理念,设计上充分考虑用融创公布百亿美元境外债重组方案,孙宏斌个人贷款全部转股界面新闻记者牛钰界面新闻编辑出险一年后,融创赶在港股年报季截止之前,宣布了境外债务重组的实质进展。3月28日晚间,融创中国(01918。HK)在港交所公告称,已与债权人小组(其债权比特币重回28,000美元XRP连续第二天飙升将XRP归类为商品可能意味着Ripple赢得了针对美国证券交易委员会的诉讼,一些交易员可能认为这对该代币有利。比特币(BTC)周三显示出韧性迹象,摆脱了针对加密货币交易所Binan有剧毒!看到立即远离!广东一地已出现海边是不少市民度假的首选。但要注意的是,大海很美,却也险象环生。如果在海边看到这种像塑料袋又像气球的生物,要立即远离千万别碰!有剧毒!毒性之强不亚于眼镜蛇严重时可致命近日,深圳有市让孩子安安静静,干干净净吃好饭,在任何时候都是一项很重要的教育极目新闻特约评论员张基广我们小时候的饭桌上,有几条不成文的规矩一是拿好筷子端好碗,如果不拿好筷子端好饭碗,就会遭到大人的责骂,说你没有吃相二是埋头吃饭不说话,大人们常挂在嘴边的一句今年明年,社会上可能有这几大趋势在慢慢形成,大家提前做好准备各种迹象不断显现,这些趋势不断被凸显,按这种节奏下去,今明两年社会上很可能会有这几大趋势在慢慢形成,我们普通人一定要未雨绸缪,大家提前做好准备!出生人口总数呈现出断崖式下滑,大概率杏好遇见你杏花绽放,粉黛满枝宣告春天优雅浪漫的时刻已经到来在杏花漫天飞舞中遇见春天的美丽山西卫视人说山西好风光汾酒旅游3月29日上午850带您一起梦回杏花村直播之前先来剧透一波跟着小编一起32023年春季桂林之行第五天(参加比赛)第五天2023年3月6号,参加篮球比赛。这次来桂林,是参加燃爆桂林桂林阳朔漓水杯篮球友谊赛的。这次比赛主要是面向五十岁以上的中老年篮球运动爱好者,是一次政府搭台篮球运动唱戏,为盘活2023年济南(双泉)第十一届春季赏花节暨油菜花旅游文化节发布会召开大众网海报新闻记者岳璋济南报道满目金黄香百里,一方春色醉千山。3月27日,2023年济南(双泉)第十一届春季赏花节暨油菜花旅游文化节发布会在双泉镇召开。发布会上,双泉镇相关负责同志
今日全国尿素出厂价格2022年10月31日哈喽,大家好!这里是化肥价格行情!关注我每天看最新尿素复合肥磷铵钾肥价格行情!今天(2022年10月31日)下面是今日国内最新尿素价格行情!周末至今国内尿素行情震荡运行,价格有涨有油价调整消息11月1日油价大幅下降,全国9295号汽油价格油价调整消息11月1日油价大幅下降,全国9295号汽油价格今天是2022年11月1日,星期二!时间很快,不知不觉10月份就过完了,油价方面10月份迎来了一轮搁浅,一轮上涨,现在进入王晗要下课,巩晓彬重回山东?山东名记蹭流量,火速被打脸头条创作挑战赛CBA联赛第一阶段在10月30日已经全面结束,第一阶段的CBA联赛,各支球队的战绩不尽相同,上海男篮广东宏远广州龙狮浙江广厦这样的强队排名都比较靠后,南京同曦和江苏男从华为发布会上,我偷学了4个实用可视化技巧前段时间,华为召开了HUAWEIMate50系列及全场景新品秋季发布会。追完全程的小编表示,不愧是华为!不过既然花时间看完了,当然要输出干货给大家今天一篇文章带你轻松get华为发布台积电牵头成立服务性联盟,三星SK海力士美光等巨头已加入据台媒工商时报报道,晶圆代工龙头台积电27日于2022开放创新平台(OIP)生态系统论坛上宣布成立OIP3DFabric联盟,该联盟提供全方位解决方案与服务以支持半导体设计内存模组华为!专注做好一件事!做到极致,做到第一调查数据表明,截止2016年,全球企业中寿命超过200年的,日本有3146家,一骑绝尘领先,德国有837家,荷兰有222家,法国有196家,但在我国,这样的百年企业却不得而知。这不大算力芯片时代下,Arm迎来新风口众所周知,2000年手机移动时代的发展带动了Arm架构的繁荣。随着行业进入由5G工业互联网物联网人工智能等驱动的数字化时代,Arm似乎又再次迎来了风口。Arm架构正在成为全球计算未一周未来商业丨天猫京东抖音开启双11预售,快手恢复与京东淘宝外链,包馔夜包子完成近千万元融资每经记者陈婷王郁彪王紫薇杨昕怡每经编辑刘雪梅每经未来商业智库每周定期分享一周未来商业,围绕电商新消费物流供应链生活服务以及未来商业创新创投领域,以事件短评的形式,洞见未来商业发展趋淘宝直播,阿里双十一新筹码作者李妍双11又到了,各大电商平台靠什么冲锋?根据淘宝今年以来在内容战略上的思路调整方向,以及天猫双11预售通过直播间取得的战绩推测,今年双11的玩法创新可能聚焦在对淘宝直播的有效上港输泰山,赛后莱科不负责任言论引众怒,不下课上港都无地自容中超焦点战,上海海港13干净利落脆的输给了山东泰山,本场比赛上港主教练莱科的指挥可谓是灾难级别。无论是赛前的技战术安排,还是临场指挥,包括换人等等都被郝伟完爆,可以说上港的失败是莱正式告别躺赢时代?从极氪001解析BBA为嘛不香了要说这几年,造车新势力没少因为放狠话被炮轰,蔚来李斌就曾语出惊人为什么还有人买汽油车。如今,又宣布ET5的目标是销量超过宝马3系。可惜,蔚来销量却并未如狠话这般具有杀伤力。反倒是极