small changes in readme

This commit is contained in:
hugo gogo
2022-08-31 18:09:21 +02:00
parent 9dffefff0c
commit 125ca13f6a

View File

@@ -55,6 +55,7 @@
- [run without sudo on linux](https://docs.docker.com/engine/install/linux-postinstall/) - [run without sudo on linux](https://docs.docker.com/engine/install/linux-postinstall/)
#### docker : #### docker :
- [docker starter guide](https://docs.docker.com/get-started/) - [docker starter guide](https://docs.docker.com/get-started/)
- [docker glossaire](https://docs.docker.com/glossary/) - [docker glossaire](https://docs.docker.com/glossary/)
- [Dockerfile syntaxe](https://docs.docker.com/engine/reference/builder/) - [Dockerfile syntaxe](https://docs.docker.com/engine/reference/builder/)
@@ -62,55 +63,59 @@
- [docker image from scratch](https://codeburst.io/docker-from-scratch-2a84552470c8) - [docker image from scratch](https://codeburst.io/docker-from-scratch-2a84552470c8)
- [build context and image context](https://stackoverflow.com/questions/55108649/what-is-app-working-directory-for-a-dockerfile/55109065#55109065) - [build context and image context](https://stackoverflow.com/questions/55108649/what-is-app-working-directory-for-a-dockerfile/55109065#55109065)
**docker pid 1** **docker pid 1**
- nginx by default will create some child process (a master and some workers), then it quits (doc ?)
- when the first process of a docker container exit, the container exit (doc ?)
- so we must tell nginx to not go background : "-g 'daemon off'"
- [pid1 docker problem](https://blog.phusion.nl/2015/01/20/docker-and-the-pid-1-zombie-reaping-problem/)
- [official nginx docker image](https://hub.docker.com/_/nginx/)
- "If you add a custom CMD in the Dockerfile, be sure to include -g daemon off; in the CMD in order for nginx to stay in the foreground, so that Docker can track the process properly (otherwise your container will stop immediately after starting)!"
- [SO discussion on "-g 'daemon off'"](https://stackoverflow.com/questions/18861300/how-to-run-nginx-within-a-docker-container-without-halting)
- "When PID 1 exits, the container will exit" (where is says in the doc ?)
- ["By design, containers started in detached mode exit when the root process used to run the container exits"](https://docs.docker.com/engine/reference/run/#detached--d)
**install and use docker and compose** - nginx by default will create some child process (a master and some workers), then it quits (doc ?)
- [how to install docker engine](https://docs.docker.com/engine/install/ubuntu/) - when the first process of a docker container exit, the container exit (doc ?)
- [github releases](https://github.com/docker/compose/releases) - so we must tell nginx to not go background : "-g 'daemon off'"
- [install last version of compose manually](https://docs.docker.com/compose/install/compose-plugin/#install-the-plugin-manually) - [pid1 docker problem](https://blog.phusion.nl/2015/01/20/docker-and-the-pid-1-zombie-reaping-problem/)
- [install manually SO discussion](https://stackoverflow.com/questions/57456212/error-version-in-docker-compose-yml-is-unsupported) - [official nginx docker image](https://hub.docker.com/_/nginx/)
- [correct release version name for download with a 'v'](https://stackoverflow.com/questions/58747879/docker-compose-usr-local-bin-docker-compose-line-1-not-command-not-found) - "If you add a custom CMD in the Dockerfile, be sure to include -g daemon off; in the CMD in order for nginx to stay in the foreground, so that Docker can track the process properly (otherwise your container will stop immediately after starting)!"
- the version installed with apt is 1.17.1, way out of date - [SO discussion on "-g 'daemon off'"](https://stackoverflow.com/questions/18861300/how-to-run-nginx-within-a-docker-container-without-halting)
- **remove old versions** - "When PID 1 exits, the container will exit" (where is says in the doc ?)
- `sudo apt remove docker docker-engine docker.io containerd runc` - ["By design, containers started in detached mode exit when the root process used to run the container exits"](https://docs.docker.com/engine/reference/run/#detached--d)
- **preparing directory**
- `sudo apt update` **install and use docker and compose**
- `sudo apt install ca-certificates curl gnupg lsb-release`
- `sudo mkdir -p /etc/apt/keyrings` - [how to install docker engine](https://docs.docker.com/engine/install/ubuntu/)
- `curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg` - [github releases](https://github.com/docker/compose/releases)
- `echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null` - [install last version of compose manually](https://docs.docker.com/compose/install/compose-plugin/#install-the-plugin-manually)
- **installing docker engine** - [install manually SO discussion](https://stackoverflow.com/questions/57456212/error-version-in-docker-compose-yml-is-unsupported)
- `sudo apt update` - [correct release version name for download with a 'v'](https://stackoverflow.com/questions/58747879/docker-compose-usr-local-bin-docker-compose-line-1-not-command-not-found)
- `sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin` - the version installed with apt is 1.17.1, way out of date
- **check if installation worked** - **remove old versions**
- `sudo docker run hello-world` - `sudo apt remove docker docker-engine docker.io containerd runc`
- **installing docker compose** checked version on github release, see above - **preparing directory**
- notice the 'v' below, before the version name (docker doc has it wong) - `sudo apt update`
- `sudo curl -L "https://github.com/docker/compose/releases/download/v2.10.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose` - `sudo apt install ca-certificates curl gnupg lsb-release`
- `sudo chmod +x /usr/local/bin/docker-compose` - `sudo mkdir -p /etc/apt/keyrings`
**volumes vs bind mounts :** - `curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg`
- [docker doc: use volumes](https://docs.docker.com/storage/volumes/) - `echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null`
- [docker doc: use bind mounts](https://docs.docker.com/storage/bind-mounts/) - **installing docker engine**
- [comparison volume vs bind mounts](https://devopscook.com/docker-volumes-vs-bind-mounts/) - `sudo apt update`
- [fundamentals use of volumes and bind mounts](https://medium.com/dlt-labs-publication/bind-mounts-volumes-in-docker-81523303cbb4) - `sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin`
- [how volumes and bind mounts are really differents](https://serverfault.com/questions/996785/docker-volumes-vs-mount-binds-what-are-the-use-cases) - **check if installation worked**
- bind mounts are normal files anywhere on the computer, that docker container can access with absolut path and modify. They can also be modified without docker, since they are juste files - `sudo docker run hello-world`
- volumes are only modifiable by docker, they don't need an absolut path, and they are not dependent of host architecture - **installing docker compose** checked version on github release, see above
- notice the 'v' below, before the version name (docker doc has it wong)
- `sudo curl -L "https://github.com/docker/compose/releases/download/v2.10.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose`
- `sudo chmod +x /usr/local/bin/docker-compose`
**volumes vs bind mounts :**
- [docker doc: use volumes](https://docs.docker.com/storage/volumes/)
- [docker doc: use bind mounts](https://docs.docker.com/storage/bind-mounts/)
- [comparison volume vs bind mounts](https://devopscook.com/docker-volumes-vs-bind-mounts/)
- [fundamentals use of volumes and bind mounts](https://medium.com/dlt-labs-publication/bind-mounts-volumes-in-docker-81523303cbb4)
- [how volumes and bind mounts are really differents](https://serverfault.com/questions/996785/docker-volumes-vs-mount-binds-what-are-the-use-cases)
- bind mounts are normal files anywhere on the computer, that docker container can access with absolut path and modify. They can also be modified without docker, since they are juste files
- volumes are only modifiable by docker, they don't need an absolut path, and they are not dependent of host architecture
#### nginx #### nginx
- [nginx begginer guide](https://hub.docker.com/_/nginx/) - [nginx begginer guide](https://hub.docker.com/_/nginx/)
- [nginx all directives for conf file](https://nginx.org/en/docs/dirindex.html) - [nginx all directives for conf file](https://nginx.org/en/docs/dirindex.html)
#### openssl #### openssl
- [openssl faq](https://www.openssl.org/docs/faq.html) - [openssl faq](https://www.openssl.org/docs/faq.html)
- [openssl req man](https://www.openssl.org/docs/man1.0.2/man1/openssl-req.html) - [openssl req man](https://www.openssl.org/docs/man1.0.2/man1/openssl-req.html)
- [SO discussion about ssl self signed certificate and becoming a CA](https://stackoverflow.com/questions/10175812/how-to-generate-a-self-signed-ssl-certificate-using-openssl) - [SO discussion about ssl self signed certificate and becoming a CA](https://stackoverflow.com/questions/10175812/how-to-generate-a-self-signed-ssl-certificate-using-openssl)