### Dockerfile - Build image file ### filename has to be Dockerfile
FROM <image> ### usually some linux distro or app or...###
ENV MONGO_DB_USERNAME=admin \ ### or some other app credentials###
MONGO_DB_PASSWORD=passw ### optional, to avoid to change .yaml
RUN mkdir -p /home/app ### execute linux command inside container
### it will make dir inside container
COPY . /home/app ### copy content from host to container
CMD ["node"."/home/app/server.js"] ### or whatever has to be started inside
### -- entry point command
docker build -t <app-image-name:ver_xx> .
### Dockerfile must exist in the current dir ###
docker rm <container_id>
remove container
docker rmi <image_id>
delete image
### Private repository (docker registry) ###
### Create private repository on AWS ### (repo per image)
docker login ###copy command from repo provider (AWS)
### AWS cli must be installed and credentials configured
###image naming in docker registry
registryDOMAIN/imageName:tag
### rename image
docker tag myAPP:1.0 domain/myAPP:10
### push to repo
docker push domain/myAPP:10
docker run -v /home/myapp/mysql:/var/lib/mysql/data
mount volume host:container (host volumes)
docker run -v /var/lib/mysql/data
docker will chose where to mount /var/lib/docker/volumes/random_hash/_data (anonymus volume)
docker run -v name:/var/lib/mysql/data
named volumes. like anonymus but you can reference volume by name (mostly used)
version: '3' ### docker compose version
services:
mongodb:
image: mongo
ports:
- 27017:27017
volumes:
- data-db:/var/lib/mysql/data #### named volume
#####################
some other config
#####################
### you have to list all volumes at the end
volumes: ### at services level
data-db: ### multiple containers can use one volume
driver: local
### docker volumes locations ###
C:\ProgramData\docker\volumes\ ### Win
/var/lib/docker/volumes/ ### Linux
/var/lib/docker/volumes/ ### OSX
### docker for mac creates linux VM
screen ~/Library/Containers/com.docker.docker/data/com.docker.docker.driver.amd64-linux/tty
### to get terminal of linuxVM on OSX ###
### Ctrl+a+k for exit ###