summaryrefslogtreecommitdiff
path: root/devdocs/docker/get-started%2Findex.html
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2024-04-07 13:41:34 -0500
committerCraig Jennings <c@cjennings.net>2024-04-07 13:41:34 -0500
commit754bbf7a25a8dda49b5d08ef0d0443bbf5af0e36 (patch)
treef1190704f78f04a2b0b4c977d20fe96a828377f1 /devdocs/docker/get-started%2Findex.html
new repository
Diffstat (limited to 'devdocs/docker/get-started%2Findex.html')
-rw-r--r--devdocs/docker/get-started%2Findex.html15
1 files changed, 15 insertions, 0 deletions
diff --git a/devdocs/docker/get-started%2Findex.html b/devdocs/docker/get-started%2Findex.html
new file mode 100644
index 00000000..734657fc
--- /dev/null
+++ b/devdocs/docker/get-started%2Findex.html
@@ -0,0 +1,15 @@
+<h1>Orientation and setup</h1>
+
+<blockquote class="important"> <p><strong>Update to the Docker Desktop terms</strong></p> <p>Commercial use of Docker Desktop in larger enterprises (more than 250 employees OR more than $10 million USD in annual revenue) now requires a paid subscription.</p> </blockquote> <p>Welcome! We are excited that you want to learn Docker.</p> <p>This page contains step-by-step instructions on how to get started with Docker. In this tutorial, you’ll learn how to:</p> <ul> <li>Build and run an image as a container</li> <li>Share images using Docker Hub</li> <li>Deploy Docker applications using multiple containers with a database</li> <li>Running applications using Docker Compose</li> </ul> <p>In addition, you’ll also learn about the best practices for building images, including instructions on how to scan your images for security vulnerabilities.</p> <p>If you are looking for information on how to containerize an application using your favorite language, see <a href="https://docs.docker.com/language/">Language-specific getting started guides</a>.</p> <p>We also recommend the video walkthrough from DockerCon 2020.</p> <iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/iqqDU2crIEQ?start=30" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe> <h2 id="download-and-install-docker">Download and install Docker</h2> <p>This tutorial assumes you have a current version of Docker installed on your machine. If you do not have Docker installed, choose your preferred operating system below to download Docker:</p> <p><a href="https://desktop.docker.com/mac/main/amd64/Docker.dmg?utm_source=docker&amp;utm_medium=webreferral&amp;utm_campaign=docs-driven-download-mac-amd64" class="button primary-btn">Mac with Intel chip</a> <a href="https://desktop.docker.com/mac/main/arm64/Docker.dmg?utm_source=docker&amp;utm_medium=webreferral&amp;utm_campaign=docs-driven-download-mac-arm64" class="button primary-btn">Mac with Apple chip</a> <a href="https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe?utm_source=docker&amp;utm_medium=webreferral&amp;utm_campaign=docs-driven-download-win-amd64" class="button primary-btn">Windows</a> <a href="https://docs.docker.com/desktop/linux/install/" class="button primary-btn">Linux</a></p> <p>For Docker Desktop installation instructions, see:</p> <ul> <li><a href="https://docs.docker.com/desktop/mac/install/">Install Docker Desktop on Mac</a></li> <li><a href="https://docs.docker.com/desktop/windows/install/">Install Docker Desktop on Windows</a></li> <li><a href="https://docs.docker.com/desktop/linux/install/">Install Docker Desktop on Linux</a></li> </ul> <h2 id="start-the-tutorial">Start the tutorial</h2> <p>If you’ve already run the command to get started with the tutorial, congratulations! If not, open a command prompt or bash window, and run the command:</p> <div class="highlight"><pre class="highlight" data-language="">$ docker run -d -p 80:80 docker/getting-started
+</pre></div> <p>You’ll notice a few flags being used. Here’s some more info on them:</p> <ul> <li>
+<code class="language-plaintext highlighter-rouge">-d</code> - run the container in detached mode (in the background)</li> <li>
+<code class="language-plaintext highlighter-rouge">-p 80:80</code> - map port 80 of the host to port 80 in the container</li> <li>
+<code class="language-plaintext highlighter-rouge">docker/getting-started</code> - the image to use</li> </ul> <blockquote> <p><strong>Tip</strong></p> <p>You can combine single character flags to shorten the full command. As an example, the command above could be written as:</p> <div class="highlight"><pre class="highlight" data-language="">$ docker run -dp 80:80 docker/getting-started
+</pre></div> </blockquote> <h2 id="the-docker-dashboard">The Docker Dashboard</h2> <p>Before going too far, we want to highlight the Docker Dashboard, which gives you a quick view of the containers running on your machine. The Docker Dashboard is available for Mac and Windows. It gives you quick access to container logs, lets you get a shell inside the container, and lets you easily manage container lifecycle (stop, remove, etc.).</p> <p>To access the dashboard, follow the instructions in the <a href="https://docs.docker.com/desktop/dashboard/">Docker Desktop manual</a>. If you open the dashboard now, you will see this tutorial running! The container name (<code class="language-plaintext highlighter-rouge">jolly_bouman</code> below) is a randomly created name. So, you’ll most likely have a different name.</p> <p><img src="data:image/png;base64,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" alt="Tutorial container running in Docker Dashboard"></p> <h2 id="what-is-a-container">What is a container?</h2> <p>Now that you’ve run a container, what <em>is</em> a container? Simply put, a container is a sandboxed process on your machine that is isolated from all other processes on the host machine. That isolation leverages <a href="https://medium.com/@saschagrunert/demystifying-containers-part-i-kernel-space-2c53d6979504">kernel namespaces and cgroups</a>, features that have been in Linux for a long time. Docker has worked to make these capabilities approachable and easy to use. To summarize, a container:</p> <ul> <li>is a runnable instance of an image. You can create, start, stop, move, or delete a container using the DockerAPI or CLI.</li> <li>can be run on local machines, virtual machines or deployed to the cloud.</li> <li>is portable (can be run on any OS)</li> <li>Containers are isolated from each other and run their own software, binaries, and configurations.</li> </ul> <blockquote> <p><strong>Creating containers from scratch</strong></p> <p>If you’d like to see how containers are built from scratch, Liz Rice from Aqua Security has a fantastic talk in which she creates a container from scratch in Go. While the talk does not go into networking, using images for the filesystem, and other advanced topics, it gives a <em>fantastic</em> deep dive into how things are working.</p> <iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/8fi7uSYlOdc" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe> </blockquote> <h2 id="what-is-a-container-image">What is a container image?</h2> <p>When running a container, it uses an isolated filesystem. This custom filesystem is provided by a <strong>container image</strong>. Since the image contains the container’s filesystem, it must contain everything needed to run an application - all dependencies, configuration, scripts, binaries, etc. The image also contains other configuration for the container, such as environment variables, a default command to run, and other metadata.</p> <p>We’ll dive deeper into images later on, covering topics such as layering, best practices, and more.</p> <blockquote> <p><strong>Info</strong></p> <p>If you’re familiar with <code class="language-plaintext highlighter-rouge">chroot</code>, think of a container as an extended version of <code class="language-plaintext highlighter-rouge">chroot</code>. The filesystem is simply coming from the image. But, a container adds additional isolation not available when simply using chroot.</p> </blockquote> <h2 id="cli-references">CLI references</h2> <p>Refer to the following topics for further documentation on all CLI commands used in this article:</p> <ul> <li><a href="../engine/reference/commandline/version/index">docker version</a></li> <li><a href="../engine/reference/commandline/run/index">docker run</a></li> <li><a href="../engine/reference/commandline/image/index">docker image</a></li> <li><a href="../engine/reference/commandline/container/index">docker container</a></li> </ul>
+<p><a href="https://docs.docker.com/search/?q=get%20started">get started</a>, <a href="https://docs.docker.com/search/?q=setup">setup</a>, <a href="https://docs.docker.com/search/?q=orientation">orientation</a>, <a href="https://docs.docker.com/search/?q=quickstart">quickstart</a>, <a href="https://docs.docker.com/search/?q=intro">intro</a>, <a href="https://docs.docker.com/search/?q=concepts">concepts</a>, <a href="https://docs.docker.com/search/?q=containers">containers</a>, <a href="https://docs.docker.com/search/?q=docker%20desktop">docker desktop</a></p>
+<div class="_attribution">
+ <p class="_attribution-p">
+ &copy; 2019 Docker, Inc.<br>Licensed under the Apache License, Version 2.0.<br>Docker and the Docker logo are trademarks or registered trademarks of Docker, Inc. in the United States and/or other countries.<br>Docker, Inc. and other parties may also have trademark rights in other terms used herein.<br>
+ <a href="https://docs.docker.com/get-started/" class="_attribution-link">https://docs.docker.com/get-started/</a>
+ </p>
+</div>