Docker
Thanks Keith for the intro!
Keith: Alpine is a stripped down linux distro. Need to learn about how to handle persistent volumes, container secrets (don't put in container, but it can prompt for things). Dockerfile -v (volume). Container should output to stdin/out, then host can manage logging. Terraform can build your arch (can use a proxmox template), ansible is great for actual tasks. GCP has managed kubernetes (wait until you understand why you need it). Check out hashicorp vault FOSS version for awesome secret storage that is docker-compatible.
Install
- Install docker
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update && sudo apt-get install docker-ce docker-ce-cli containerd.io sudo docker run hello-world sudo docker container ls -all # to see previous run-and-teardown sudo usermod -aG docker m # to add m to docker group for complete access, no more need for [sudo docker]
Node container
- Install a node container. The official node one is HUGE (1GB), the alpine one is relatively tiny. See the list here.
docker pull node docker image pull node:current-alpine3.11 # details: https://github.com/nodejs/docker-node/blob/8d77359e4f20c45829f7d7399b76a5eb99eff4da/16/alpine3.11/Dockerfile docker image ls docker run -it node Ctrl-D docker image ls
More examples
- Example dockerfile for nextcloud
- MDMDockerfile attempt one
m@matryoshka:~$ cat MDMDockerfile FROM node:current-alpine3.11 RUN curl https://install.meteor.com/ | sh && mkdir -p development && cd development && git clone es-platform && cd /home/m/development/es-platform && meteor npm install && cd /home/m/development/es-config/scripts/node/es && npm install -g COPY docker-entrypoint.sh /usr/local/bin/ ENTRYPOINT ["docker-entrypoint.sh"] CMD [ "es r" ] </code>
Commands
- show containers in a nice format
sudo docker ps -a --format "table Template:.Names\tTemplate:.Status" sudo docker ps -a --format "table Template:.Names\tTemplate:.Status" |grep #mycontainer#