【docker1】指令,docker-compose,Dockerfile

文章目录

  • 1.pull/image,run/ps(进程),exec/commit
  • 2.save/load:docker save + 镜像id,不是容器id
  • 3.docker-compose:多容器:宿主机(eth0网卡)安装docker会生成一张docker网卡,docker网卡通过nat方式为每个容器分配ip
    • 3.1 link:先docker rm -f删除nginx和alpine两个容器,在alpine中ping myng(相当于域名)的话自动解析为myng的ip
    • 3.2 docker-compose .yml:不用link,location匹配
  • 4.Dockerfile:镜像像程序,容器像进程


1.pull/image,run/ps(进程),exec/commit

docker和vmware虚拟机一样由三部分构成:镜像(image)是像ubuntu镜像文件(iso,img文件),容器(ps)是一个正在运行的虚拟机,仓库是存放镜像文件场所(dockerhub)。tar文件类似于vm使用时的vmdk文件,可将一个镜像直接保存成一个tar文件,别人load重新加载成一个镜像,run起来成了一个虚拟机。Dockfile是一个很短的配置文件,通过写"如何构建"的步骤来指定一个镜像如何构建的,通过docker build指令可将Dockfile构建成一个镜像。仓库保存了一些公有镜像如ubuntu镜像,nginx镜像,mysql镜像,tomcat镜像等。
在这里插入图片描述
ubuntu安装命令:sudo apt install docker.io,网站:play with docker。
docker run -d -p 80:80 nginx上面才会出现80端口,点击80端口跳转到nginx网页首页。
docker run -d -p 81:80 nginx指定外部81端口同理点击81跳转到nginx网页首页(nginx的默认端口是80)。
在这里插入图片描述
在这里插入图片描述
如下再次点击外部80端口。
在这里插入图片描述
如下暂时用不到81,容器里内容修改后要commit成新镜像m1,和pull下来的nginx镜像并列。
在这里插入图片描述
当前目录自己新增index.html(里面写着wai bu de wen jian)和Dockerfile两文件,将原来nginx里面index.html替换了,如下vi Dockerfile。
在这里插入图片描述
在这里插入图片描述
点击外部100号端口如下:上面为dockerfile build成一镜像run成为一容器。
在这里插入图片描述

2.save/load:docker save + 镜像id,不是容器id

docker rm m2将m2镜像直接删除,提示有个容器基于这镜像无法删除,那将容器(container id)也删了。
在这里插入图片描述
删了容器还要删除镜像m2,docker load使m2镜像又从tar文件重新拿过来了。文件映射-v就是将一些静态文件放外面,在外面修改文件(因为是映射的)里面文件也会跟着变化。这个文件映射还会用于其他的一些数据保存,比如mysql的data目录也可以映射到外面,防止数据丢失。
在这里插入图片描述

3.docker-compose:多容器:宿主机(eth0网卡)安装docker会生成一张docker网卡,docker网卡通过nat方式为每个容器分配ip

容器间同一网段可通过ip通信,容器(3个)和宿主机(eth0)通信是通docker0网卡转发路由过来是ip和端口进行通信。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如下curl…回车后打印出下面< html >…。以下就能获取nginx容器数据了,但这种方式需要登录一台机器查看ip,再登录另一台机器去配置这个ip,在实际生产中是不可行的。
在这里插入图片描述

3.1 link:先docker rm -f删除nginx和alpine两个容器,在alpine中ping myng(相当于域名)的话自动解析为myng的ip

在这里插入图片描述
如下curl myng直接得到nginx的首页内容,浏览器将内容解析为界面。
在这里插入图片描述
在这里插入图片描述

3.2 docker-compose .yml:不用link,location匹配

nginx需要到php中去解析,php需要到mysql中访问数据库,两个需要写link,且必须先创建mysql,再部署到其他机器重新输入整个指令麻烦。将这些指令记录到一个配置文件里统一配置,这就是docker-compose(需安装)。
在这里插入图片描述
在这里插入图片描述
网页会显示如下index.html文本字样。
在这里插入图片描述
创建test.php用来监测php是否运行成功。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如下/root/html下存的是php文件转发到/var/www/html目录下找php文件。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.Dockerfile:镜像像程序,容器像进程

FROM:指定当前镜像基于哪个镜像,必填,一行就可以构建一个镜像。
WORKDIR:指定接下来shell语句运行在哪个路径下,如下alpine镜像下肯定没有/app这个目录,自动创建。
COPY:将当前宿主机文件拷贝到镜像中去。
RUN:构建容器时运行这脚本,当前工作目录就是/app,所以如下321写入/app/1.txt
CMD:指定整个容器启动起来运行脚本,运行完后整个容器生命周期结束(tail -f 阻塞式)。

如下必须命名为Dockerfile,1.txt里面原本内容有123。
在这里插入图片描述
如下指定镜像名test,最后的点表示dockfile文件位于当前目录下。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

【LinuxC语言】深入理解IP地址与端口号

文章目录 前言端口号IP地址IP地址的分类主机地址与网络地址多播是什么子网掩码特殊的地址与私有的地址总结前言 在计算机网络中,IP 地址和端口号是两个非常重要的概念。IP 地址用于标识网络上的设备,而端口号则用于在同一设备上区分不同的服务或应用。在 Linux C 语言编程中…

torchinfo这个包中的summary真的很好用

1.安装直接使用 pip 进行安装即可&#xff1a; pip install torchinfo 2.导入该模块 from torchinfo import summary 3.使用模块 summary(model)#这里的model是你自己的model&#xff0c;可以添加参数进去 4.效果图&#xff1a; 第一个图片是直接打印model吗&#xff0c;…

已解决java.util.concurrent.BrokenBarrierException异常的正确解决方法,亲测有效!!!

已解决java.util.concurrent.BrokenBarrierException异常的正确解决方法&#xff0c;亲测有效&#xff01;&#xff01;&#xff01; 目录 问题分析 出现问题的场景 报错原因 解决思路 解决方法 分析错误日志 检查线程中断 设置合理的等待时间 优化代码逻辑 使用同步…

基于uni-app和图鸟UI开发上门服务小程序

一、技术栈选择 uni-app&#xff1a;我们选择了uni-app作为开发框架&#xff0c;因为它基于Vue.js&#xff0c;允许我们编写一次代码&#xff0c;发布到多个平台&#xff0c;包括iOS、Android、Web以及各种小程序。uni-app的丰富组件库、高效的状态管理以及便捷的预览调试功能&…

【Nvidia+AI摄像头】面向机器人双目视觉相机

随着人工智能和机器人技术的不断发展&#xff0c;双目深度相机作为一种重要的传感器&#xff0c;正在被广泛应用于各种机器人系统中。双目深度相机作为机器人不可或缺的感知器件&#xff0c;其高精度深度信息为机器人提供环境感知、立体视觉、姿态识别等功能&#xff0c;让机器…

Mybatis plus:Wrapper接口

一、介绍 MyBatis-Plus 提供了一套强大的条件构造器&#xff08;Wrapper&#xff09;&#xff0c;用于构建复杂的数据库查询条件。Wrapper 类允许开发者以链式调用的方式构造查询条件&#xff0c;无需编写繁琐的 SQL 语句&#xff0c;从而提高开发效率并减少 SQL 注入的风险。 …

apksigner jarsigner.md

关于作者&#xff1a;CSDN内容合伙人、技术专家&#xff0c; 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 &#xff0c;擅长java后端、移动开发、商业变现、人工智能等&#xff0c;希望大家多多支持。 目录 一、导读二、概览三、apksigner3.2 为 APK 签名3.3 验证…

python 字符串驻留机制

偶然发现一个python字符串的现象&#xff1a; >>> a 123_abc >>> b 123_abc >>> a is b True >>> c abc#123 >>> d abc#123 >>> c is d False 这是为什么呢&#xff0c;原来它们的id不一样。 >>> id(a)…

使用AGG里面的clip_box函数裁剪画布, 绘制裁剪后的图形

// 矩形裁剪图片, 透明 void agg_testImageClipbox_rgba32(unsigned char* buffer, unsigned int width, unsigned int height) {// 创建渲染缓冲区 agg::rendering_buffer rbuf;// BMP是上下倒置的&#xff0c;为了和GDI习惯相同&#xff0c;最后一个参数是负值。rbuf.attach…

CausalMMM:基于因果结构学习的营销组合建模

1. 摘要 在线广告中&#xff0c;营销组合建模&#xff08;Marketing Mix Modeling&#xff0c;MMM&#xff09; 被用于预测广告商家的总商品交易量&#xff08;GMV&#xff09;&#xff0c;并帮助决策者调整各种广告渠道的预算分配。传统的基于回归技术的MMM方法在复杂营销场景…

34 - 指定日期的产品价格(高频 SQL 50 题基础版)

34 - 指定日期的产品价格 -- row_number(行号) 生成连续的序号&#xff0c;不考虑分数相同 -- 在2019-08-16之前改的价格&#xff0c;使用最近一期的日期&#xff0c;没有在2019-08-16之前改的价格&#xff0c;默认价格为10 select t.product_id, t.new_price as price from (s…

华为某员工爆料:三年前985本科起薪30万,现在硕士起薪还是30w,感慨互联网行情变化

“曾经的30万年薪&#xff0c;是985本科学历的‘标配’&#xff0c;如今硕士也只值这个价&#xff1f;” 一位华为员工的爆料&#xff0c;揭开了互联网行业薪资变化的冰山一角&#xff0c;也引发了不少人的焦虑&#xff1a;互联网人才“通货膨胀”的时代&#xff0c;真的结束了…

板凳-------unix 网络编程 卷1-1简介

unix网络编程进程通信 unpipc.h https://blog.csdn.net/u010527630/article/details/33814377?spm1001.2014.3001.5502 订阅专栏 1>解压源码unpv22e.tar.gz。 $tar zxvf unpv22e.tar.gz //这样源码就被解压到当前的目录下了 2>运行configure脚本&#xff0c;以生成正确…

【区块链】区块链架构设计:从原理到实践

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 区块链架构设计&#xff1a;从原理到实践引言一、区块链基础概念1.1 区块链定义…

k8s上使用ConfigMap 和 Secret

使用ConfigMap 和 Secret 实验目标&#xff1a; 学习如何使用 ConfigMap 和 Secret 来管理应用的配置。 实验步骤&#xff1a; 创建一个 ConfigMap 存储应用配置。创建一个 Secret 存储敏感信息&#xff08;如数据库密码&#xff09;。在 Pod 中挂载 ConfigMap 和 Secret&am…

荣耀社招 测试工程师 技术一面

面经哥只做互联网社招面试经历分享&#xff0c;关注我&#xff0c;每日推送精选面经&#xff0c;面试前&#xff0c;先找面经哥 1、自我介绍 2、具体介绍做过的项目&#xff0c;支撑的事什么业务 3、防火墙测试时、平时有写脚本或者使用第三方工具吗 4、对互联网的安全测试规…

浏览器插件利器-allWebPluginV2.0.0.14-bata版发布

allWebPlugin简介 allWebPlugin中间件是一款为用户提供安全、可靠、便捷的浏览器插件服务的中间件产品&#xff0c;致力于将浏览器插件重新应用到所有浏览器。它将现有ActiveX插件直接嵌入浏览器&#xff0c;实现插件加载、界面显示、接口调用、事件回调等。支持谷歌、火狐等浏…

DataStructure.时间和空间复杂度

时间和空间复杂度 【本节目标】1. 如何衡量一个算法的好坏2. 算法效率3. 时间复杂度3.1 时间复杂度的概念3.2 大O的渐进表示法3.3 推导大O阶方法3.4 常见时间复杂度计算举例3.4.1 示例13.4.2 示例23.4.3 示例33.4.4 示例43.4.5 示例53.4.6 示例63.4.7 示例7 4.空间复杂度4.1 示…

从零开始搭建一个酷炫的个人博客

效果图 一、搭建网站 git和hexo准备 注册GitHub本地安装Git绑定GitHub并提交文件安装npm和hexo&#xff0c;并绑定github上的仓库注意&#xff1a;上述教程都是Windows系统&#xff0c;Mac系统会更简单&#xff01; 域名准备 购买域名&#xff0c;买的是腾讯云域名&#xf…

神经网络实战1-Sequential

链接&#xff1a;https://pytorch.org/docs/1.8.1/generated/torch.nn.Sequential.html#torch.nn.Sequential 完成这样一个网络模型 第一步新建一个卷积层 self.conv1Conv2d(3,32,5)#第一步将33232输出为32通道&#xff0c;卷积核5*5 注意一下&#xff1a;输出通道数等于卷积…