$ docker stop $(docker ps -a -q)
$ docker rm $(docker ps -a -q)
$ docker images -qf dangling=true | xargs --no-run-if-empty docker rmi
$ docker network inspect bridge
$ docker run -itd --name=container1 busybox
$ docker run -itd --name=container2 busybox
$ docker network inspect bridge
$ docker attach container1 # ifconfig (ctrl-p + ctrl-q)
$ docker network create myNet
$ docker network inspect myNet
$ docker network connect myNet container1
$ docker network connect myNet container2
$ docker network inspect myNet
$ docker attach container1 # ping 172.18.0.2
- docker save: save an image in a tar file
$ docker save diptadas/bkz-utils > docker-bkz-utils.tar
- docker export: save a container in a tar file
$ docker export 2fe669cc6128 > docker-bkz-utils.tar
- docker commit: create a new image based on a container
$ docker commit 2fe669cc6128 diptadas/bkz-utils
- docker load: load an image from a tar file
$ docker load < docker-bkz-utils.tar
$ sudo groupadd docker
$ sudo gpasswd -a $USER docker
- Run docker-registry at localhost:5000
$ docker run -d -p 5000:5000 --restart=always --name registry registry
- Build and tag docker image
$ docker build -t localhost:5000/my-image .
- Push image to repository
$ docker push localhost:5000/my-image
- Verify repository
$ curl -s -S localhost:5000/v2/_catalog
- Pull and run image
$ docker run -it localhost:5000/my-image sh
- Use image in minikube
$ curl -s -S http://192.168.99.1:5000/v2/_catalog
$ minikube start --insecure-registry=192.168.99.1:5000
$ kubectl run -it my-app --image=192.168.99.1:5000/my-image --port=9090 --command -- sh
#3 Bind volume mount
$ mkdir -p /tmp/busybox
$ touch /tmp/busybox/hello.txt
$ docker run -it --mount type=bind,source=/tmp/busybox,target=/app busybox
ls app
FROM golang:alpine AS build-env
ADD . /src
RUN cd /src && go build -o goapp
FROM alpine
WORKDIR /app
COPY --from=build-env /src/goapp /app/
ENTRYPOINT ./goapp
$ docker run --name my-own-mysql -e MYSQL_ROOT_PASSWORD=mypass123 -d mysql:8.0.1
$ docker run --name my-own-phpmyadmin -d --link my-own-mysql:db -p 8081:80 phpmyadmin/phpmyadmin
- MySQL Dump
$ docker exec 8541e255c1d7 usr/bin/mysqldump -u root --password=pAss acmsacdb > db-2020-backup.sql
- MySQL Import
$ docker exec -i 33773096eab9 mysql -u root --password=pAss acmsacdb < sessionsDB.sql
$ docker run -p 5432:5432 -e POSTGRES_USER=docker -e POSTGRES_PASSWORD=docker -e POSTGRES_DB=docker postgres
$ docker run -p 5050:80 -e PGADMIN_DEFAULT_EMAIL=admin@example.com -e PGADMIN_DEFAULT_PASSWORD=admin dpage/pgadmin4
$ docker run -p 6080:80 -e USER=das -e PASSWORD=das -v /Users/das/Downloads/dev/shm:/dev/shm dorowu/ubuntu-desktop-lxde-vnc
- Dockerfile
FROM ubuntu:16.04
RUN apt-get update && apt-get install -y firefox
CMD /usr/bin/firefox
- Build and Run
$ docker build -t firefox-docker .
$ xhost local:root
$ docker run -it --rm \
-e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
firefox-docker