<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Docker on Leanku 的博客</title><link>https://www.leanku.com/tags/docker/</link><description>Recent content in Docker on Leanku 的博客</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Sat, 11 Mar 2023 20:46:01 +0800</lastBuildDate><atom:link href="https://www.leanku.com/tags/docker/index.xml" rel="self" type="application/rss+xml"/><item><title>docker删除none镜像</title><link>https://www.leanku.com/post/devops/docker%E5%88%A0%E9%99%A4none%E9%95%9C%E5%83%8F/</link><pubDate>Sat, 11 Mar 2023 20:46:01 +0800</pubDate><guid>https://www.leanku.com/post/devops/docker%E5%88%A0%E9%99%A4none%E9%95%9C%E5%83%8F/</guid><description>&lt;h1 id="docker删除none镜像"&gt;docker删除none镜像&lt;/h1&gt;&#10;&lt;p&gt;1、使用git bash进入到docker文件夹&lt;/p&gt;&#10;&lt;p&gt;2、查询所有的none镜像&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;docker images &lt;span class="p"&gt;|&lt;/span&gt; grep none&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;3、查询所有的none镜像的id&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;docker images &lt;span class="p"&gt;|&lt;/span&gt; grep none &lt;span class="p"&gt;|&lt;/span&gt; awk &lt;span class="s1"&gt;&amp;#39;{print $3}&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;4、删除所有的none镜像&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;docker images &lt;span class="p"&gt;|&lt;/span&gt; grep none &lt;span class="p"&gt;|&lt;/span&gt; awk &lt;span class="s1"&gt;&amp;#39;{print $3}&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; xargs docker rmi&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="docker-none镜像说明"&gt;docker none镜像说明&lt;/h2&gt;&#10;&lt;h3 id="一有效的-none-镜像"&gt;一、有效的 none 镜像&lt;/h3&gt;&#10;&lt;p&gt;Docker文件系统的组成，docker镜像是由很多 layers组成的，每个 layer之间有父子关系，所有的docker文件系统层默认都存储在/var/lib/docker/graph目录下，docker称之为图层数据库。&lt;/p&gt;&#10;&lt;p&gt;最后做一个总结&amp;lt; none&amp;gt;:&amp;lt; none&amp;gt; 镜像是一种中间镜像，我们可以使用docker images -a来看到，他们不会造成硬盘空间占用的问题（因为这是镜像的父层，必须存在的），但是会给我们的判断带来迷惑。&lt;/p&gt;&#10;&lt;h3 id="二无效的-none-镜像"&gt;二、无效的 none 镜像&lt;/h3&gt;&#10;&lt;p&gt;另一种类型的 &amp;lt; none&amp;gt;:&amp;lt; none&amp;gt; 镜像是dangling images ，这种类型会造成磁盘空间占用问题。&lt;/p&gt;&#10;&lt;p&gt;像Java和Golang这种编程语言都有一个内存区，这个内存区不会关联任何的代码。这些语言的垃圾回收系统优先回收这块区域的空间，将他返回给堆内存，所以这块内存区对于之后的内存分配是有用的&lt;/p&gt;&#10;&lt;p&gt;docker的悬挂(dangling)文件系统与上面的原理类似，他是没有被使用到的并且不会关联任何镜像，因此我们需要一种机制去清理这些悬空镜像。&lt;/p&gt;&#10;&lt;p&gt;我们在上文已经提到了有效的&amp;lt; none&amp;gt;镜像，他们是一种中间层，那无效的&amp;lt; none&amp;gt;镜像又是怎么出现的？这些 dangling镜像主要是我们触发 docker build 和 docker pull命令产生的。&lt;/p&gt;&#10;&lt;p&gt;使用下面的命令可以清理&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;docker rmi &lt;span class="k"&gt;$(&lt;/span&gt;docker images -f &lt;span class="s2"&gt;&amp;#34;dangling=true&amp;#34;&lt;/span&gt; -q&lt;span class="k"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>php-msf-docker</title><link>https://www.leanku.com/post/php/php-msf-docker/</link><pubDate>Sat, 11 Mar 2023 11:46:01 +0800</pubDate><guid>https://www.leanku.com/post/php/php-msf-docker/</guid><description>&lt;h1 id="php-msf-docker"&gt;php-msf-docker&lt;/h1&gt;&#10;&lt;p&gt;基于&lt;a href="https://hub.docker.com/layers/library/centos/centos7.9.2009/images/sha256-dead07b4d8ed7e29e98de0f4504d87e8880d4347859d839686a31da35a3b532f?context=explore"&gt;centos:centos7.9.2009&lt;/a&gt;镜像制作的php开发环境镜像&lt;/p&gt;&#10;&lt;h4 id="主要包含"&gt;主要包含：&lt;/h4&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;PHP-8.1.14&lt;/li&gt;&#10;&lt;li&gt;redis-5.3.7&lt;/li&gt;&#10;&lt;li&gt;swoole-src-5.0.2&lt;/li&gt;&#10;&lt;li&gt;nginx-1.21.5&lt;/li&gt;&#10;&lt;li&gt;supervisor&lt;/li&gt;&#10;&lt;li&gt;sshd&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;strong&gt;GitHub地址 :&lt;/strong&gt; &lt;a href="https://github.com/leanku/php-msf-docker"&gt;https://hub.docker.com/r/leanku/php-msf-docker&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;DockerHub地址 :&lt;/strong&gt; &lt;a href="https://hub.docker.com/r/leanku/php-msf-docker"&gt;https://hub.docker.com/r/leanku/php-msf-docker&lt;/a&gt;&lt;/p&gt;&#10;&lt;h3 id="包含扩展"&gt;包含扩展&lt;/h3&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;bcmath,Core,ctype,curl,date,dom,exif,fileinfo,filter,ftp,gd,gettext,hash,iconv,intl,json,libxml,mbstring,mysqli,mysqlnd,openssl,pcntl,pcre,PDO,pdo_mysql,pdo_pgsql,pdo_sqlite,pgsql,Phar,posix,redis,Reflection,session,shmop,SimpleXML,soap,sockets,sodium,SPL,sqlite3,standard,sysvsem,tokenizer,xml,xmlreader,xmlwriter,xsl,zip,zlib,swoole&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;&#10;&lt;h3 id="运行示例"&gt;运行示例&lt;/h3&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;docker run --privileged --restart=always -it -d \&#10;--hostname=php-msf --name=php-msf-docker \&#10;-p 22:22 -p 80:80 -p 3306:3306 -p 8000:8000 -p 9501:9501 \&#10;-v /c/docker/www:/php-msf/data/www \&#10;leanku/php-msf-docker&#10;&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;&#10;&lt;h3 id="ssh"&gt;SSH&lt;/h3&gt;&#10;&lt;p&gt;默认用户：super 密码：123456&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;ssh super@127.0.0.1&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item></channel></rss>