<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Cloud on 施星宇</title><link>https://www.hugoshih.com/zh-tw/tags/cloud/</link><description>Recent content in Cloud on 施星宇</description><generator>Hugo -- gohugo.io</generator><language>zh-Hant-TW</language><lastBuildDate>Mon, 30 May 2022 14:56:58 +0800</lastBuildDate><atom:link href="https://www.hugoshih.com/zh-tw/tags/cloud/index.xml" rel="self" type="application/rss+xml"/><item><title>Docker使用小筆記</title><link>https://www.hugoshih.com/zh-tw/p/docker%E4%BD%BF%E7%94%A8%E5%B0%8F%E7%AD%86%E8%A8%98/</link><pubDate>Mon, 30 May 2022 14:56:58 +0800</pubDate><guid>https://www.hugoshih.com/zh-tw/p/docker%E4%BD%BF%E7%94%A8%E5%B0%8F%E7%AD%86%E8%A8%98/</guid><description>&lt;img src="https://i.imgur.com/5vmDYCZ.jpg" alt="Featured image of post Docker使用小筆記" /&gt;&lt;h1 id="docker使用小筆記"&gt;Docker使用小筆記&#10;&lt;/h1&gt;&lt;h2 id="前言"&gt;前言&#10;&lt;/h2&gt;&lt;p&gt;Docker可以說是雲端技術中非常重要的一項專案，這個專案實現了Container技術，使得軟體的執行可以不在受系統環境限制，更加速了雲端技術中Microservice概念的發展，以下就簡單介紹常用的Docker指令。&lt;/p&gt;&#10;&lt;h2 id="基本操作"&gt;基本操作&#10;&lt;/h2&gt;&lt;ul&gt;&#10;&lt;li&gt;離開但不關閉container：&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;crtl+p crtl+q&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;連著打&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;查看container列表&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo docker container ls&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;ul&gt;&#10;&lt;li&gt;進入container&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo docker attach &amp;lt;ID&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;ul&gt;&#10;&lt;li&gt;關閉container&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo container stop &amp;lt;ID&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="docker-image操作"&gt;Docker Image操作&#10;&lt;/h2&gt;&lt;ul&gt;&#10;&lt;li&gt;查看image列表&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo docker image ls&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;ul&gt;&#10;&lt;li&gt;下載image&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo docker pull &amp;lt;hub path&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;ul&gt;&#10;&lt;li&gt;Run&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo docker run &amp;lt;--gpus all&amp;gt; &amp;lt;-it&amp;gt; &amp;lt;-p 80&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;local&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;:80&lt;span class="o"&gt;(&lt;/span&gt;docker&lt;span class="o"&gt;)&lt;/span&gt;&amp;gt; &amp;lt;-v /data&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;local&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;:/data&lt;span class="o"&gt;(&lt;/span&gt;docker&lt;span class="o"&gt;)&lt;/span&gt; &amp;lt;images&amp;gt; &amp;lt;command&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;ul&gt;&#10;&lt;li&gt;image commit&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo docker commit &amp;lt;ID&amp;gt; &amp;lt;images name&amp;gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="reference"&gt;Reference&#10;&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="https://larrylu.blog/step-by-step-dockerize-your-app-ecd8940696f4" target="_blank" rel="noopener"&#10; &gt;https://larrylu.blog/step-by-step-dockerize-your-app-ecd8940696f4&lt;/a&gt;&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;在沒有sudo權限使用docker：&#10;&lt;a class="link" href="https://docs.docker.com/engine/security/rootless/" target="_blank" rel="noopener"&#10; &gt;https://docs.docker.com/engine/security/rootless/&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;docker儲存：&#10;&lt;a class="link" href="https://peihsinsu.gitbooks.io/docker-note-book/content/docker-save-image.html" target="_blank" rel="noopener"&#10; &gt;https://peihsinsu.gitbooks.io/docker-note-book/content/docker-save-image.html&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;docker run 操作：&#10;&lt;a class="link" href="https://noob.tw/docker-basic/" target="_blank" rel="noopener"&#10; &gt;https://noob.tw/docker-basic/&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;docker port：&#10;&lt;a class="link" href="https://www.runoob.com/docker/docker-run-command.html" target="_blank" rel="noopener"&#10; &gt;https://www.runoob.com/docker/docker-run-command.html&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;nvidia docker：&#10;&lt;a class="link" href="https://gitlab.com/nvidia/container-images/cuda/blob/master/doc/supported-tags.md" target="_blank" rel="noopener"&#10; &gt;https://gitlab.com/nvidia/container-images/cuda/blob/master/doc/supported-tags.md&lt;/a&gt;&#10;&lt;a class="link" href="https://www.celantur.com/blog/run-cuda-in-docker-on-linux/" target="_blank" rel="noopener"&#10; &gt;https://www.celantur.com/blog/run-cuda-in-docker-on-linux/&lt;/a&gt;&#10;&lt;a class="link" href="https://docs.docker.com/engine/reference/commandline/run/#access-an-nvidia-gpu" target="_blank" rel="noopener"&#10; &gt;https://docs.docker.com/engine/reference/commandline/run/#access-an-nvidia-gpu&lt;/a&gt;&#10;error解法：&#10;&lt;a class="link" href="https://github.com/NVIDIA/nvidia-docker/issues/1243" target="_blank" rel="noopener"&#10; &gt;https://github.com/NVIDIA/nvidia-docker/issues/1243&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;x11 firefox docker：&#10;&lt;a class="link" href="https://stackoverflow.com/questions/16296753/can-you-run-gui-applications-in-a-docker-container" target="_blank" rel="noopener"&#10; &gt;https://stackoverflow.com/questions/16296753/can-you-run-gui-applications-in-a-docker-container&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;指令大全：&#10;&lt;a class="link" href="https://github.com/docker-library/php/issues/359" target="_blank" rel="noopener"&#10; &gt;https://github.com/docker-library/php/issues/359&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;沒有中文的解法：&#10;&lt;a class="link" href="https://github.com/docker-library/php/issues/359" target="_blank" rel="noopener"&#10; &gt;https://github.com/docker-library/php/issues/359&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;</description></item></channel></rss>