<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.alpinelinux.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Textboox5</id>
	<title>Alpine Linux - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.alpinelinux.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Textboox5"/>
	<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/wiki/Special:Contributions/Textboox5"/>
	<updated>2026-04-29T18:37:44Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Docker&amp;diff=15278</id>
		<title>Docker</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Docker&amp;diff=15278"/>
		<updated>2018-06-21T00:29:34Z</updated>

		<summary type="html">&lt;p&gt;Textboox5: /* Isolate containers with a user namespace */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Alpine makes a great docker container, because it is so small and optimized to be run in RAM.&lt;br /&gt;
It might also might make a good controller for several docker containers with enough RAM.  I haven&#039;t tested this yet&lt;br /&gt;
Docker&#039;s setup is easy to use from command line.  Commands can be run from an interactive shell, or through a configuration file called a &amp;quot;Dockerfile&amp;quot;. &lt;br /&gt;
docker.com has excellent walk-throughs on how to run, pull, setup a container, commit an image, and create a configuration file.  hub.docker.com is a freemium setup, where the first private repository is free.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
 &lt;br /&gt;
Run &amp;lt;code&amp;gt;apk add docker&amp;lt;/code&amp;gt; to install Docker on Alpine Linux.&lt;br /&gt;
&lt;br /&gt;
The Docker package is in the &#039;Community&#039; repository, so if the &#039;&#039;&#039;apk add&#039;&#039;&#039; fails with &#039;&#039;&#039;unsatisfiable constraints&#039;&#039;&#039;, you need to edit the &#039;&#039;&#039;/etc/apk/repositories&#039;&#039;&#039; file to add (or uncomment) a line like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;http://dl-cdn.alpinelinux.org/alpine/latest-stable/community&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then run &amp;lt;code&amp;gt;apk update&amp;lt;/code&amp;gt; to index the repository.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To start the Docker daemon at boot, run:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;rc-update add docker boot&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Then to start the Docker daemon manually, run:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;service docker start&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Note|On older version of Alpine Linux with older version of docker you&#039;ll also need to disable some kernel security flags in order to build images:}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sysctl -w kernel.grsecurity.chroot_deny_chmod=0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sysctl -w kernel.grsecurity.chroot_deny_mknod=0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For more information, have a look at the [https://github.com/docker/docker/issues/20303 corresponding Github issue].&lt;br /&gt;
&lt;br /&gt;
Anyway, this weakening of security is not necessary to do with Alpine 3.4.x and Docker 1.12 as of August 2016 anymore.&lt;br /&gt;
&lt;br /&gt;
=== Docker Compose ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To install docker-compose, first install pip:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apk add py-pip&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Then install docker-compose, run:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pip install docker-compose&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Isolate containers with a user namespace ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
adduser -SDHs /sbin/nologin dockremap&lt;br /&gt;
addgroup -S dockremap&lt;br /&gt;
echo dockremap:$(cat /etc/passwd|grep dockremap|cut -d: -f3):65536 &amp;gt;&amp;gt; /etc/subuid&lt;br /&gt;
echo dockremap:$(cat /etc/passwd|grep dockremap|cut -d: -f4):65536 &amp;gt;&amp;gt; /etc/subgid&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and add in &#039;&#039;&#039;/etc/conf.d/docker&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DOCKER_OPTS=&amp;quot;--userns-remap=default&amp;quot;                    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;You may also consider these options : &#039;&#039;&#039;--icc=false --no-new-privileges&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
PS: it&#039;s also here (at DOCKER_OPTS) you must specify the &#039;&#039;&#039;-H tcp://$IP:$PORT -H unix:///var/run/docker.sock&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Example: How to install docker from Arch ==&lt;br /&gt;
&lt;br /&gt;
https://wiki.archlinux.org/index.php/Docker&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;How to use docker&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
The best documentation for how to use Docker and create containers is at the main docker site.  Adding anything more to it here would be redundant.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;http://docs.docker.com/&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
if you create an account at docker.com you can browse through other user&#039;s images and learn from the syntax in contributor&#039;s dockerfiles.&lt;br /&gt;
&lt;br /&gt;
Official Docker image files are denoted by a blue ribon on the website.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://www.erianna.com/creating-a-alpine-linux-repository/ Creating &amp;amp; Hosting an Alpine Linux Package Repository for Docker Packages]&lt;br /&gt;
&lt;br /&gt;
[[Category:Virtualization]]&lt;/div&gt;</summary>
		<author><name>Textboox5</name></author>
	</entry>
</feed>