202103-24 解决docker run后容器出现Exited (0)情况的问题 自己做了个centos7的openresty的Dockerfile,build之后dockerrun-d-p801:80openresty:1.19/usr/local/openresty/nginx/sbin/nginx之后dockerps-a出现如下情况CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES9dee2d04b3b5openresty:1.19"/usr/local/openrest…"24secondsagoExited(0)7secondsagogifted_bhabha69846af3baa7redis:latest"docker-entrypoint.s…"24minutesagoUp24minutes0.0.0.... 继续阅读 >
202103-23 docker run -v 挂载数据卷异常,容器状态一直是restarting的解决 出现的问题:dockerrun加上-v参数之后,容器就一直是restarting状态,去掉-v参数就可以正常运行查找问题:使用dockerlogs'containerId'这个containerId,就是dockerrun之后返回的containerId可以看到,是权限拒绝的问题解决问题:dockerrun时加上参数:加上--privileged=true例如:dockerrun-dit-eMYSQL_ROOT_PASSWORD=123456--namesaasdev-mysql--restartalways-v/home/data/mysql:/var/lib/mysql--privi... 继续阅读 >
202103-23 docker 移除掉运行不正常的container操作 本菜鸟在刚学习docker的时候遇到了这样的问题,记录一下,当启动一个container的时候,dockerps看到刚启动的容器有问题,然后dockerlogs<containerid>才知道权限不够,未能创建目录。然后想启动,但是当前的container一直处于restarting,然后dockerstop试了一下,返回成功,然后dockerps当前container依然存在,然后dockerkill的时候提示容器未启动,docker-help看了一下,dockerrm移除容器。但改命令无法移除一... 继续阅读 >
202103-23 Docker多个容器不能有相同端口号的处理方案 问题背景在docker里用同一份镜像创建4个容器,网络选择bridge模式,A服务在四个容器中都使用了同一个端口号(6000);为了减少对外暴露的端口数,另外使用了nginx对这4个服务实例做代理,4个服务实例分属4个upstream,使用了类似/service1、/service2的路径来访问4个实例。此时从本地访问任一服务,则会报502错误,百思不得其解。connect()failed(111:Connectionrefused)whileconnectingtoupstreamcompose文件version:'2'... 继续阅读 >
202103-23 docker 无法释放端口的解决方案 今天遇到一个非常奇葩的情况就是当更新完docker镜像后,运行docker-composeup-d出现了Bindfor0.0.0.0:xxxxfailed:portisalreadyallocated的情况,通过netstat-ap|grepxxxx之后发现时docker的某个进程一直占用这个端口而导致服务无法重新启动。通过一系列的解决方法:比如kill进程,重启docker等方式都没有成功。之后分享一个方法希望可以给遇到同样问题的同学一种解决思路。sudocp/var/lib/docker/network/files... 继续阅读 >
202103-23 Docker容器间通信与外网通信的操作 一容器间通信1.容器的网络共享处于这个模式下的docker容器会共享一个网络栈,这样两个容器之间可以使用localhost高效快速通信。使用于web服务器与应用服务器之间的通信。##清空实验环境[root@server1~]#dockerps-aCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES##默认网络创建容器[root@server1~]#dockerrun-it--namevm1ubunturoot@b1a2a90f98a5:/#ipa1:lo:<LOOPBAC... 继续阅读 >
202103-23 docker 突然不能被外网访问的解决方案 根据大佬们的方法,找到了原因sysctlnet.ipv4.ip_forward.腾讯云提示修复漏洞,执行完他们的脚本,ip转发就被关掉了。后来研究了一下,可以通过dockerinfo找到问题所在。并且可以查看到docker给出一警告解决方法:sudovim/etc/sysctl.conf修改,保存,然后systemctlrestartnetwork或者sysctl-wnet.ipv4.ip_forward=1但是这样处理可能服务器重启以后就失效了?还有两个警告,一起处理一下就好了。WARNING:bridge-... 继续阅读 >
202103-22 Docker每次启动容器,IP及hosts指定的操作 前言每次在使用Docker启动Hadoop集群的时候,都需要重新绑定下网卡,固定IP,同时修改/etc/hosts文件,非常麻烦,于是想探寻下原因及优化。一、原因/etc/hosts,/etc/resolv.conf和/etc/hostname,容器中的这三个文件不存在于镜像,在启动容器的时候,通过mount的形式将这些文件挂载到容器内部。因此,如果在容器中修改这些文件的话,修改部分不会存在于容器的toplayer,而是直接写入这三个物理文件中。为什么重启后修改内容不存... 继续阅读 >
202103-22 Docker 网络模式及配置方式 一、Docker网络模式dockerrun创建Docker容器时,可以用?net选项指定容器的网络模式,Docker有以下4种网络模式:host模式,使用?net=host指定。container模式,使用?net=container:NAME_or_ID指定。none模式,使用?net=none指定。bridge模式,使用?net=bridge指定,默认设置。host模式如果启动容器的时候使用host模式,那么这个容器将不会获得一个独立的NetworkNamespace,而是和宿主机共用一个Network... 继续阅读 >
202103-22 docker 设置windows存储路径的操作 在win10下安装docker时,选择container类型为Linuxcontainer之后,设置存储路径不能再通过修改daemon的graph值配置了,具体修改方式如下图:第一步点击setting进入设置页面第二步选择container共享目录,根据自己需要放在相应的驱动器上,然后apply,卡上几分钟就好了。第三步选择镜像存储地址,browse选择自己要存放的目录,然后apply,然后过几分钟后就好了补充:win10下修改dockerforwindows的仓库路径吐槽说实话,为了解决... 继续阅读 >
202103-19 docker镜像完全卸载的操作步骤 1.dockerps-a查看运行的镜像进程[root@mylinux~]#dockerps-aCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES98acb9dcb2a2redis:5"docker-entrypoint.s…"8minutesagoUp8minutes0.0.0.0:6379->6379/tcpredis1b1ff7f08583mysql:5.7"docker-entrypoint.s…"8minutesagoUp8minutes0.0.0.0:3306->3306/tcp,33060/tcpmysql035129f60a64mongo:3.6"doc... 继续阅读 >
202103-19 删除docker images中为none的镜像操作 由于平时一直使用dockerbuild命令才生成一个镜像,有时候由于代码跟新频繁就会产生很多的none的image,最近想着清除一下。于是就写了以下脚本:dockerps-a|grep"Exited"|awk'{print$1}'|xargsdockerstopdockerps-a|grep"Exited"|awk'{print$1}'|xargsdockerrmdockerimages|grepnone|awk'{print$3}'|xargsdockerrmi补充:docker删除所有none镜像或停止的容器在docker反复build后,会存留很多none... 继续阅读 >
202103-19 docker images本地迁移的实现 最近在学习docker,经常遇到的一个问题是,在下载dockerimage的时候,由于众所周知的网络原因导致失败,虽然网上也有很多解决方案,比如使用DockerHubMirror之类的国内镜像服务,不过由于个人原因(侥幸有一台国外的VM),我更倾向于不通过dockerregistry共享下载的image。问题很明确:不通过dockerregistry,将A机器上的dockerimage共享给其他机器,即docker镜像本地迁移。方案也很简单:使用docker的save和load命令,... 继续阅读 >
202103-19 解决docker images 镜像消失的问题 1、50,93存在镜像消失情况[root@h50/]#df-h文件系统容量已用可用已用%挂载点devtmpfs24G024G0%/devtmpfs24G024G0%/dev/shmtmpfs24G428M24G2%/runtmpfs24G024G0%/sys/fs/cgroup/dev/mapper/cl-root50G43G8.0G85%/root剩下85%overlay50G43G8.0G85%/var/lib/docker/overlay2/9e1d9bbd368c8ebafde39dcaaa66afecde95bfab7db51b13fe92aa5c7995cc9e/merged镜像使用的是root下... 继续阅读 >
202103-19 Docker images导出和导入操作 之前已配置好基础镜像,其他地方也需要用到这些镜像时怎么办呢?答案:镜像的导入和导出功能。1、镜像的保存[root@wxtest1607~]#dockerimagesREPOSITORYTAGIMAGEIDCREATEDSIZEtomcat83.090457edaf6ff6hoursago1.036GB[root@wxtest1607lixr]#dockersave9045>tomcat8-apr.tar[root@wxtest1607lixr]#ls-lh总用量1.2G-rw-r--r--1rootroot1005M8月24... 继续阅读 >
202103-19 docker 容器自定义 hosts 网络访问操作 在docker-compose.yml中增加extra_hosts关键字就可以将数据写入到容器的/etc/hosts。extra_hosts添加主机名映射。extra_hosts:“somehost:162.242.195.82”“otherhost:50.31.209.229”将会在/etc/hosts创建记录:162.242.195.82somehost50.31.209.229otherhost注意:如果指向的是本机,不要写容器的ip,(因为IP重启后会变,除非你给容器设置固定ip)而是写宿主机的ip,如192.168.xxx.xxx补充:Docker网络:host模式当我们... 继续阅读 >