{"id":20291,"date":"2023-07-18T19:38:26","date_gmt":"2023-07-18T10:38:26","guid":{"rendered":"https:\/\/www.hiro345.net\/blogs\/hiro345\/?p=20291"},"modified":"2023-07-18T19:41:19","modified_gmt":"2023-07-18T10:41:19","slug":"docker-desktop-for-linux-%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%81%bf%e3%81%9f%e3%81%a8%e3%81%8d%e3%81%ab%e5%b0%91%e3%81%97%e8%aa%bf%e3%81%b9%e3%81%9f%e3%81%93%e3%81%a8","status":"publish","type":"post","link":"https:\/\/www.hiro345.net\/blogs\/hiro345\/archives\/20291.html","title":{"rendered":"Docker Desktop for Linux \u3092\u4f7f\u3063\u3066\u307f\u305f\u3068\u304d\u306b\u5c11\u3057\u8abf\u3079\u305f\u3053\u3068"},"content":{"rendered":"<p>\u6700\u8fd1\u3001Docker Desktop for Linux \u3092\u4f7f\u3063\u3066\u307f\u307e\u3057\u305f\u3002\u3042\u307e\u308a\u304d\u3061\u3093\u3068\u898b\u3066\u307e\u305b\u3093\u304c\u3001<a href=\"https:\/\/docs.docker.com\/desktop\/install\/linux-install\/\">Install Docker Desktop on Linux | Docker Documentation<\/a> \u306b\u3088\u308b\u3068\u3001\u5c02\u7528\u306e Virtual Machine \u3092\u7528\u610f\u3057\u3066\u52d5\u4f5c\u3055\u305b\u308b\u3088\u3046\u3067\u3059\u3002<br \/>\n<!--more--><\/p>\n<p>System requirements \u306b\u300cKVM virtualization support.\u300d\u304c\u8a18\u8f09\u3055\u308c\u3066\u3044\u308b\u306e\u3067\u3001\u30cf\u30fc\u30c9\u30a6\u30a7\u30a2\u7684\u306b\u306f\u5c11\u3057\u30cf\u30fc\u30c9\u30eb\u304c\u9ad8\u3044\u306e\u3068\u3001\u8a2d\u5b9a\u3082\u5c11\u3057\u9762\u5012\u306a\u5370\u8c61\u304c\u3042\u308a\u307e\u3059\u3002CPU \u306b i5 \u3068\u304b i7 \u3092\u4f7f\u3063\u3066\u3044\u308b\u306a\u3089\u5927\u3057\u305f\u3053\u3068\u306f\u3042\u308a\u307e\u305b\u3093\u3051\u3069\u3002KVM \u304c\u5fc5\u8981\u306a\u3044\u5206\u3001Docker Engine \u306e\u65b9\u304c\u4f55\u304b\u3068\u5fdc\u7528\u6027\u304c\u9ad8\u305d\u3046\u3067\u3059\u3002<\/p>\n<p>\u3061\u306a\u307f\u306b\u3001Ubuntu 22.04 \u3092\u4f7f\u3063\u3066\u3044\u308b\u3068\u304d\u306f\u3001cpu-checker \u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u3068 kvm-ok \u30b3\u30de\u30f3\u30c9\u304c\u4f7f\u3048\u307e\u3059\u3002\u3053\u308c\u3067 KVM \u304c\u6709\u52b9\u306b\u306a\u3063\u3066\u3044\u308b\u304b\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ sudo apt -y install cpu-checker\r\n$ kvm-ok\r\nINFO: \/dev\/kvm exists\r\nKVM acceleration can be used\r\n<\/pre>\n<p><a href=\"https:\/\/docs.docker.com\/desktop\/faqs\/linuxfaqs\/#what-is-the-difference-between-docker-desktop-for-linux-and-docker-engine\">FAQs for Linux | Docker Documentation<\/a> \u306f\u4e00\u5ea6\u8aad\u3093\u3067\u304a\u304f\u3068\u826f\u3044\u3067\u3057\u3087\u3046\u3002<\/p>\n<p>Docker Desktop \u306f\u3001Systemd \u5bfe\u5fdc\u3057\u3066\u3044\u3066\u3001user \u7528\u306e systemd \u8a2d\u5b9a\u306b\u30a8\u30f3\u30c8\u30ea\u30fc\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u6700\u521d\u3001\u305d\u306e\u8a2d\u5b9a\u304c\u3069\u3053\u306b\u3042\u308b\u306e\u304b\u308f\u304b\u3089\u306a\u304b\u3063\u305f\u306e\u3067\u3059\u304c\u3001dpkg -L \u30b3\u30de\u30f3\u30c9\u3067\u8b0e\u304c\u89e3\u3051\u307e\u3057\u305f\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ dpkg -L docker-desktop\r\n(\u7565)\r\n\/usr\/lib\/systemd\/user\/docker-desktop.service\r\n(\u7565)\r\n\/usr\/share\/applications\/docker-desktop-uri-handler.desktop\r\n\/usr\/share\/applications\/docker-desktop.desktop\r\n<\/pre>\n<p>\/usr\/lib\/systemd\/user\/docker-desktop.service \u306b\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u304c\u3042\u308a\u307e\u3059\u3002\u307e\u305f\u3001\u30c7\u30b9\u30af\u30c8\u30c3\u30d7\u7528\u306e\u30e9\u30f3\u30c1\u30e3\u30fc\u7528\u306b\u3001\/usr\/share\/applications\/docker-desktop.desktop \u306b\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<p>\/usr\/lib\/systemd\/user\/docker-desktop.service \u306e\u5185\u5bb9\u306f\u6b21\u306e\u901a\u308a\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ cat \/usr\/lib\/systemd\/user\/docker-desktop.service\r\n[Unit]\r\nDescription=Docker Desktop\r\nRequires=graphical-session.target\r\nAfter=graphical-session.target\r\n\r\n[Service]\r\nExecStart=\/opt\/docker-desktop\/bin\/com.docker.backend\r\nType=exec\r\nTimeoutSec=60\r\n\r\n[Install]\r\nAlias=docker-desktop.service\r\nWantedBy=graphical-session.target\r\n<\/pre>\n<p>\u3082\u3068\u3082\u3068\u306f\u3001\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u6e08\u307f\u306e Docker Engine \u306b\u5bfe\u3057\u3066 Docker Desktop \u304b\u3089\u63a5\u7d9a\u3059\u308b\u65b9\u6cd5\u3092\u8abf\u3079\u3066\u3044\u305f\u306e\u3067\u3059\u304c\u3001\u8d77\u52d5\u6642\u306b\u4f7f\u7528\u3059\u308b Docker Engine \u3092\u6307\u5b9a\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u306a\u3044\u3088\u3046\u3067\u3057\u305f\u3002Docker Desktop \u306e\u62e1\u5f35\u6a5f\u80fd\u304c\u7d50\u69cb\u4fbf\u5229\u306a\u306e\u3067\u3001\u4f7f\u3044\u305f\u304b\u3063\u305f\u306e\u3067\u3059\u304c\u3001<a href=\"https:\/\/www.portainer.io\/\">Portainer: Docker and Kubernetes Management Platform<\/a> \u3092\u4f7f\u3046\u306e\u304c\u826f\u3055\u305d\u3046\u3067\u3057\u305f\u3002\u3061\u306a\u307f\u306b\u3001\u5358\u72ec\u3067 Portainer \u3092\u7528\u610f\u3059\u308b\u3088\u308a\u3001Docker Desktop \u306e\u62e1\u5f35\u6a5f\u80fd\u306b\u3042\u308b Portainer \u3092\u4f7f\u3063\u305f\u307b\u3046\u304c\u624b\u8efd\u3067\u3059\u3002<\/p>\n<p>\u30ed\u30fc\u30ab\u30eb\u30de\u30b7\u30f3\u306e Docker Engine \u3078\u63a5\u7d9a\u3059\u308b\u306b\u306f\u3001portainer-agent \u30a4\u30e1\u30fc\u30b8\u3092\u4f7f\u3044\u307e\u3059\u3002<a href=\"https:\/\/hub.docker.com\/r\/portainer\/agent\">portainer\/agent &#8211; Docker Image | Docker Hub<\/a> \u306b Docker \u30a4\u30e1\u30fc\u30b8\u304c\u3042\u308b\u306e\u3067\u3001\u3053\u308c\u3092\u4f7f\u3046\u3068\u7c21\u5358\u3067\u3059\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\nDOCKER_HOST=unix:\/\/\/var\/run\/docker.sock \\\r\n  docker container run -d \\\r\n    -p 9001:9001 \\\r\n    --name portainer_agent \\\r\n    --restart=always \\\r\n    -v \/var\/run\/docker.sock:\/var\/run\/docker.sock \\\r\n    -v \/var\/lib\/docker\/volumes:\/var\/lib\/docker\/volumes \\\r\n    portainer\/agent:2.18.4\r\n<\/pre>\n<p>\u3053\u308c\u3092\u8d77\u52d5\u3057\u305f\u72b6\u614b\u3067\u3001Docker Desktop \u306e Portainer \u306e Environment \u3078 localhost:9001 \u306e\u74b0\u5883\u3092\u8ffd\u52a0\u3059\u308c\u3070\u3001\u30ed\u30fc\u30ab\u30eb\u30de\u30b7\u30f3\u306e Docker Engine \u306b\u63a5\u7d9a\u304c\u3067\u304d\u307e\u3059\u3002\u3061\u306a\u307f\u306b\u3001\u30b7\u30a7\u30eb\u306e docker context \u3092 default \u306b\u3057\u3066\u3042\u308b\u5834\u5408\u306f\u3001DOCKER_HOST=unix:\/\/\/var\/run\/docker.sock \u306e\u6307\u5b9a\u306f\u4e0d\u8981\u3067\u3059\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\n$ docker context use default\r\n$ docker container run -d \\\r\n    -p 9001:9001 \\\r\n    --name portainer_agent \\\r\n    --restart=always \\\r\n    -v \/var\/run\/docker.sock:\/var\/run\/docker.sock \\\r\n    -v \/var\/lib\/docker\/volumes:\/var\/lib\/docker\/volumes \\\r\n    portainer\/agent:2.18.4\r\n<\/pre>\n<p>\u4e00\u5fdc\u3001\u63a8\u5968\u3067\u306f Docker Desktop \u3092\u52d5\u4f5c\u3055\u305b\u3066\u3044\u308b\u5834\u5408\u306f\u3001\u30ea\u30bd\u30fc\u30b9\u306e\u7af6\u5408\u306a\u3069\u304c\u8d77\u304d\u306a\u3044\u3088\u3046\u306b\u3001Docker Engine \u306e\u65b9\u306f\u505c\u6b62\u3057\u3066\u304a\u3044\u305f\u65b9\u304c\u826f\u3044\u3088\u3046\u3067\u3059\u304c\u3001\u3053\u3046\u3044\u3063\u305f\u65b9\u6cd5\u3067\u4e21\u65b9\u3068\u3082\u5229\u7528\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u3061\u306a\u307f\u306b\u3001\u505c\u6b62\u6642\u306f\u6b21\u306e\u3088\u3046\u306b\u3057\u307e\u3059\u3002\u8d77\u52d5\u6642\u306b `&#8211;restart=always` \u3092\u6307\u5b9a\u3057\u3066\u3044\u308b\u306e\u3067\u3001\u8d77\u52d5\u6642\u306b `&#8211;rm` \u306e\u6307\u5b9a\u304c\u3067\u304d\u307e\u305b\u3093\u3002\u306a\u306e\u3067\u3001\u505c\u6b62\u3057\u305f\u5f8c\u306b\u524a\u9664\u3059\u308b\u624b\u9806\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<pre class=\"brush: bash; gutter: true\">\r\nDOCKER_HOST=unix:\/\/\/var\/run\/docker.sock \\\r\n  docker container stop portainer_agent\r\n\r\nuntil DOCKER_HOST=unix:\/\/\/var\/run\/docker.sock \\\r\n  docker container ls -a --filter name=portainer_agent | grep Exited; do\r\n  &gt;&amp;2 echo &quot;portainer_agent is available - sleeping&quot;\r\n  sleep 5\r\ndone\r\n\r\nDOCKER_HOST=unix:\/\/\/var\/run\/docker.sock \\\r\n  docker container rm portainer_agent\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u6700\u8fd1\u3001Docker Desktop for Linux \u3092\u4f7f\u3063\u3066\u307f\u307e\u3057\u305f\u3002\u3042\u307e\u308a\u304d\u3061\u3093\u3068\u898b\u3066\u307e\u305b\u3093\u304c\u3001Install Docker Desktop on Linux | Docker Documentation \u306b\u3088\u308b\u3068 &hellip; <a href=\"https:\/\/www.hiro345.net\/blogs\/hiro345\/archives\/20291.html\">\u7d9a\u304d\u3092\u8aad\u3080 <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[993,1437,1209,1438,1439],"class_list":["post-20291","post","type-post","status-publish","format-standard","hentry","category-linux","tag-docker","tag-docker-desktop","tag-linux","tag-portainer","tag-portainer-agent"],"_links":{"self":[{"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/posts\/20291","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/comments?post=20291"}],"version-history":[{"count":3,"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/posts\/20291\/revisions"}],"predecessor-version":[{"id":20294,"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/posts\/20291\/revisions\/20294"}],"wp:attachment":[{"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/media?parent=20291"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/categories?post=20291"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hiro345.net\/blogs\/hiro345\/wp-json\/wp\/v2\/tags?post=20291"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}