3.8 KiB
3.8 KiB
docker
Setup
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
docker run hello-world
Alphine
source https://wiki.alpinelinux.org/wiki/Docker
apk add docker
addgroup username docker
rc-update add docker default
service docker start
fuse overlay
apt install --yes fuse-overlayfs
Containers
Containers list
docker container list
Interactive shell
#example with ubuntu
docker container run -it ubuntu /bin/bash
Remove when finished
#example with ubuntu
docker container run -rm ubuntu
Attach to a running container
#attach to stdout of container with name ubuntu
docker container run -a ubuntu
## connects to container with name ubuntu and attach to bash (interactive)
docker exec -it pm_wp_adminer /bin/bash
Volumes
Export / Backup
#export volumes (tar) from dbstore container into volume
docker run --rm --volumes-from dbstore -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /dbdata
Import / Restores
#inports volumes (untar) into dbstore2
docker run --rm --volumes-from dbstore2 -v $(pwd):/backup ubuntu bash -c "cd /dbdata && tar xvf /backup/backup.tar --strip 1"
NFS
Notes:
docker-compose.yaml
volumes:
volume00:
driver: local
driver_opts:
type: ${VOLUME_TYPE}
o: ${VOLUME_O}
device: "${VOLUME_DEVICE}"
.env
VOLUME_TYPE="nfs"
# DNS server ip, RW:read and write
VOLUME_O="addr=10.10.1.1,rw"
# Folder on NFS Server
## Must exists on nfs server, or security errors when starting container
VOLUME_DEVICE=":/export/docker-volumes/volume00"
Network
Macvlan
Create
How to create a docker macvlan network
# run on host
docker network create -d macvlan --subnet=192.168.1.249/24 --gateway=192.168.1.1 -o parent=eth0 macvlan_network
Host comunication
if network required between host and docker container on a macvlan docker network
-
Option 1 - Create another macvlan on host
-
Setup vars
MACVLAN_NAME=macvlan_bridge HOST_ETHERNET_ADP=eth0 NETWORK=192.168.1.0/24 -
Create mavclan adapter
ip link add $MACVLAN_NAME link $HOST_ETHERNET_ADP type macvlan mode bridge ip addr add $NETWORK dev $MACVLAN_NAME ifconfig $MACVLAN_NAME up -
Add routing
ip route add $CONTAINER_MAVLAN_IP dev $MACVLAN_NAME -
Delete mavclan adapter
ifconfig $MACVLAN_NAME down ip link del $MACVLAN_NAME -
Persisting macvlan configuration Example:
- network: 192.168.1.0/24
- macvlan name:: macvlan_bridge
- macvlan static ip: 192.168.1.240/32
- docker containers on macvlan networks:
- 192.168.1.254
- 192.168.1.253
- 192.168.1.250
- 192.168.1.248
# create/edit /etc/network/interfaces.d/macvlan_bridge iface macvlan_bridge inet manual pre-up ip link add macvlan_bridge link eth0 type macvlan mode bridge pre-up ip addr add 192.168.1.240/32 dev macvlan_bridge up ip link set macvlan_bridge up post-up ip route add 192.168.1.254 dev macvlan_bridge post-up ip route add 192.168.1.253 dev macvlan_bridge post-up ip route add 192.168.1.252 dev macvlan_bridge post-up ip route add 192.168.1.250 dev macvlan_bridge post-up ip route add 192.168.1.248 dev macvlan_bridge
-
log
write to docker log buffer
echo "Hello World!" >> /proc/1/fd/1
clear all docker logs
truncate -s 0 /var/lib/docker/containers/*/*-json.log;
delete all images
docker rmi -f $(docker images -aq)
delete all images
docker volume rm $(docker volume ls -qf dangling=true)