• 售前

  • 售后

热门帖子
入门百科

Docker设置容器位置与小本事总结

[复制链接]
春天到了 显示全部楼层 发表于 2021-10-26 14:37:31 |阅读模式 打印 上一主题 下一主题
Docker利用小本事
1、整理全部制止的docker容器
偶然候我们会有很多已经制止的容器或者由于错误欺压退出不能用的容器,那我们就需要删除了,但是我们一个一个的rm删除很贫苦,有多少容器就要rm多少次,我们可以根据docker ps -qa 查出全部容器的id,一次性全部删除,不用担心会删除正在运行的容器,运行中的容器rm无法删除,如许我们就一次性把全部制止的容器删除了
  1. # 只适用于Linux环境下
  2. docker rm $(docker ps -qa)
复制代码
2、查看镜像中得环境变量
当我们制作好一个镜像或者获取到一个镜像之后如果我们想知道他的环境变量,我们首先想到的就是创建容器看看就知道了,其实不必,我们可以直接通过env查看
  1. docker run nginx env
复制代码

3、Windows上和Linux的区别
这两种环境的区别重要缘故原由还是docker的支持问题,我们都知道docker最开始是在Linux上发行的,依赖于Linux内核,但是Windows上没有,那么我们现在是怎么用的呢,虚拟机,如果是win10以下版本基本上装的都是VirtualBox,win10的很多都会选择桌面版的,利用的Hyper-V ,也是虚拟机的一种。只有有了虚拟机之后docker才能在windows上利用,到这里我们应该知道两种差别之处了
在Linux上docker直接就在Linux系统上的,但是在windows上差别,windows系统上是虚拟机,虚拟机上才是docker
Linux系统 << docker容器
win系统 << 虚拟机 << docker容器
也就是这种缘故原由,导致我们在利用的过程中有略微的差别,最常见的就是开端口的时间
Linux系统:docker容器端口直接映射到Linux系统
windows系统:docker容器端口映射到虚拟机,再由虚拟机映射到我们的windows
注: 把我们虚拟机中选择网络的时间选择网络地点转换(NAT),如许我们就不用思量中间虚拟机到windows这层的端口映射问题了
4、挂载
在利用Docker的时间很多人都喜欢制作镜像,把应用直接打包到镜像中,直接启动镜像,统统OK,但是克制不了的是我们偶然候会做一些渺小的修改,特别是配置文件或者是一些项目中微小的修改,这种时间我们还是要重新做镜像吗?答案是不需要的,没有须要
​ 我们前端利用nginx镜像摆设,但是发布之后发现有一点样式需要微调,那么我们是不是还需要重新制作一个镜像呢,如许我们会不会感觉很贫苦(至少我会感觉很贫苦),想想我们只需要把修改过的文件把容器中的文件覆盖就行了,怎么样才能直接把修改过的文件覆盖容器中的文件,两种办法:第不停接把文件cp到容器中,这个过程我们还是要操放纵器,怎么才能不动容器呢?挂载 我们可以在启动容器的时间直接把会在后面修改的东西挂载到宿主机上,如许我们就不用动容器了,启动的时间利用-v参数挂载宿主机文件或目录到容器
  1. docker run -d -p 80:80 -v /c/Users/SunArmy/Desktop/html:/usr/share/nginx/html nginx
复制代码


我们随便写一个index.html内里写上welcome nginx
把这个文件覆盖/opt/docker/html/下的index.html
再访问


重启都不需要直接OK
为什么不选择直接cp到容器中
​ 有如许一种环境,如果你需要修改的是配置文件,这肯定是需要重启的,但是在修改的时间不警惕把配置文件写错了,这个时间你的容器就起不来了,想要修改容器中的配置,那也做不到了(除非重新创建容器),换种做法,如果我们把配置文件挂载在外貌当你启动不起来的时间你可以直接在宿主机上修改为正确配置重启启动即可,综上,挂载的方式比cp到容器中的方式方便且安全
1、jq工具
末了介绍一个操纵json的工具,这个是在查看容器配置的时间用的,我们利用docker inspect ID查看容器配置,每每会过滤出来一些我们关注的信息,一般环境下我们会选择docker inspect --format= 或者利用grep
但是无论利用哪一种都没有我们最熟悉的操纵json的方式来过滤用着爽
jq工具需要单独安装yum install jq
利用jq过滤docker inspect 获取地点
  1. docker inspect ac |jq -r .[0].NetworkSettings.IPAddress
复制代码
. 代表管道前面的输出,之后的[0]就是数组的第1个元素,后面的 . 就是雷同于点出对象中的属性一样,跟我们平常利用json是一样的,jq还能方便的格式化查看json文件,对于在命令行下查看json文件简直是利器


2、修改Docker当地镜像和容器的存储位置
很多人都是只知道创建了容器,从来没有关注过创建的容器在哪?当地镜像在哪?
但是,当你不得不关注的时间每每就是你的docker镜像和容器把你的盘装满了
查看Docker镜像和容器存储的位置
  1. docker info |greo Docker
复制代码
默认位置就是:/var/lib/docker
修改存储位置的方法有两种:
一):通过创建软连接,把/var/lib/docker 移动到其他地方,创建到这里的软连接
  1. # 停止docker
  2. service docker stop
  3. # 移动/var/lib/docker 到/usr/local/
  4. mv /var/lib/docker /usr/local/
  5. # 建立软连接
  6. ln -s /usr/local/docker /var/lib/docker
  7. # 启动Docker
  8. service docker start
复制代码
这个时间我们已经修改了,但是查看位置的时间看到的位置还是/var/lib/docker
但是这是个链接,可以查看大小发现是空的,真实的存储位置已经成为了/usr/local/docker
  1. # 查看/var/lib/docker目录大小
  2. du -dh /var/lib/docker
复制代码
二):修改配置文件
默认配置文件/etc/docker/daemon.json
如果没有的话就本身创建
  1. {
  2. "registry-mirrors": ["http://hub-mirror.c.163.com"],
  3. "graph":"/opt/docker"
  4. }
复制代码
直接修改 graph 的值为你的位置然后重启,OK
启动
service docker stop
制止
service docker start
重启
service docker restart
再查看docker的存储位置,已经修改成功
总结
以上就是这篇文章的全部内容了,盼望本文的内容对各人的学习或者工作具有肯定的参考学习代价,谢谢各人对脚本之家的支持。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作