Difference between revisions of "Docker"
(18 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
Since this project utilizes Docker technologies extensively, it is necessary to provide documentation on [[wikipedia:Docker (software)|Docker]]. | __NOTOC__ | ||
{{WikiEntry|key=Docker|qCode=15206305}} is a Open-source software for deploying containerized applications. It extends the hash code-based naming convention of [[Git]] to manage data versioning of Docker image files. Since this project utilizes Docker technologies extensively, it is necessary to provide documentation on [[wikipedia:Docker (software)|Docker]]<ref>{{:Video/Learn Docker in 7 Easy Steps - Full Beginner's Tutorial}}</ref>. | |||
Before reading books on Docker, one can start reading some of the following articles: | Before reading books on Docker, one can start reading some of the following articles: | ||
Line 6: | Line 7: | ||
# [https://vsupalov.com/docker-arg-env-variable-guide/ Docker ARG, ENV and .env - a Complete Guide] | # [https://vsupalov.com/docker-arg-env-variable-guide/ Docker ARG, ENV and .env - a Complete Guide] | ||
# [https://developers.redhat.com/blog/2018/02/22/container-terminology-practical-introduction/ Container Terminology Practical Introduction] | # [https://developers.redhat.com/blog/2018/02/22/container-terminology-practical-introduction/ Container Terminology Practical Introduction] | ||
# [https://diveintodocker.com/?utm_source=ansibledocker&utm_medium=github&utm_campaign=readmetop Dive Into Docker] website | |||
==Some Utilities to run Docker== | |||
"See this docker container? I wish I could run another one just like it, | |||
but I'll be damned if I'm going to type all those command-line switches manually!" | |||
* https://github.com/lavie/runlike | |||
==Docker Installation Mysteries== | ==Docker Installation Mysteries== | ||
Line 20: | Line 27: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
===Install software from local repository=== | |||
One way to avoid software download problems is to install a local instance of software repository. Relevant information can be found here: [[Ubuntu#Set%20up%20Local%20Repository|Set up Local Repository for Ubuntu]]. | |||
=Building Multi-Architecture Image= | |||
To build docker images for multiple architectures (ARM and AMD/Intel), please look at | |||
#[https://jitsu.com/blog/multi-platform-docker-builds Multi-Platform Docker Builds] | |||
#Another reference is here: [https://www.docker.com/blog/multi-arch-build-and-images-the-simple-way/ Mutli-architecture build and images] | |||
#[https://www.docker.com/blog/multi-arch-images/ Multi-Architecture Images posted 2019] | |||
Note that you must do the following command on the machine that tries to build images: | |||
docker buildx create --name mybuilder | |||
docker buildx use mybuilder | |||
Then, the <code>--platform linux/amd64,linux/arm64</code> options will start to work. | |||
Moreover, when building images from different networks, it is possible that certain packages are not available within your network region. Use VPN to get to another network and retry. | |||
==More Advance Reading== | ==More Advance Reading== | ||
# [https://www.redhat.com/en/blog/architecting-containers-part-1-why-understanding-user-space-vs-kernel-space-matters Why Understanding User Space vs. Kernel Space matters?] | # [https://www.redhat.com/en/blog/architecting-containers-part-1-why-understanding-user-space-vs-kernel-space-matters Why Understanding User Space vs. Kernel Space matters?] | ||
# [https://www.redhat.com/en/blog/architecting-containers-part-2-why-user-space-matters Why User Space matters?] | # [https://www.redhat.com/en/blog/architecting-containers-part-2-why-user-space-matters Why User Space matters?] | ||
# [https://www.redhat.com/en/blog/architecting-containers-part-3-how-user-space-affects-your-application How User Space affects your application?] | # [https://www.redhat.com/en/blog/architecting-containers-part-3-how-user-space-affects-your-application How User Space affects your application?] | ||
==Docker Tutorial for NetworkEngineers== | |||
There is a youtube channel called: [[NetworkEvolution]], which provides high quality video tutorials under the series of [[Docker Tutorial for Network Engineers]]. This series looks at [[Docker]] from a Network Engineer's viewpoint, which is a required mental model for understanind [[Docker]]. | |||
<noinclude> | |||
=References= | |||
<references/> | |||
=Related Pages= | |||
[[Category:Container Technology]] | |||
[[Category:Docker]] | |||
</noinclude> |
Latest revision as of 08:00, 23 May 2022
Docker(Q15206305) is a Open-source software for deploying containerized applications. It extends the hash code-based naming convention of Git to manage data versioning of Docker image files. Since this project utilizes Docker technologies extensively, it is necessary to provide documentation on Docker[1].
Before reading books on Docker, one can start reading some of the following articles:
- Six Docker Basics
- Docker ARG, ENV and .env - a Complete Guide
- Container Terminology Practical Introduction
- Dive Into Docker website
Some Utilities to run Docker
"See this docker container? I wish I could run another one just like it, but I'll be damned if I'm going to type all those command-line switches manually!"
Docker Installation Mysteries
There are two main packages for Docker installation, docker.io
and containerd.io
. If your network doesn't resolve certain repository site, you might not be able to install the software properly, and you might not be given the signals about why. In my case, I used a VPN service to pretend my computer is situated in the USA, and some problems are resolved. The particular case in point is here:
echo "[TASK 5] Install containerd runtime"
apt update -qq >/dev/null 2>&1
apt install -qq -y containerd apt-transport-https >/dev/null 2>&1
mkdir /etc/containerd
containerd config default > /etc/containerd/config.toml
systemctl restart containerd
systemctl enable containerd >/dev/null 2>&1
Install software from local repository
One way to avoid software download problems is to install a local instance of software repository. Relevant information can be found here: Set up Local Repository for Ubuntu.
Building Multi-Architecture Image
To build docker images for multiple architectures (ARM and AMD/Intel), please look at
- Multi-Platform Docker Builds
- Another reference is here: Mutli-architecture build and images
- Multi-Architecture Images posted 2019
Note that you must do the following command on the machine that tries to build images:
docker buildx create --name mybuilder docker buildx use mybuilder
Then, the --platform linux/amd64,linux/arm64
options will start to work.
Moreover, when building images from different networks, it is possible that certain packages are not available within your network region. Use VPN to get to another network and retry.
More Advance Reading
- Why Understanding User Space vs. Kernel Space matters?
- Why User Space matters?
- How User Space affects your application?
Docker Tutorial for NetworkEngineers
There is a youtube channel called: NetworkEvolution, which provides high quality video tutorials under the series of Docker Tutorial for Network Engineers. This series looks at Docker from a Network Engineer's viewpoint, which is a required mental model for understanind Docker.
References
- ↑ Delaney, Jeff (Aug 24, 2020). Learn Docker in 7 Easy Steps - Full Beginner's Tutorial. local page: Fireship.