yum       install docker-engine  # или att | zypper
systemctl enable  docker
systemctl start   docker

df /var/lib/docker  # хранилище для docker images и volumes
lvcreate -T -L 15G -n dockerpool vg0 # lvol для докерного thin-pool-хранилища

/etc/docker/daemon.json :
{
"insecure-registries": ["192.168.1.0/24"],           // репозитории без https
"registry-mirrors":    ["http://192.168.1.11:5000"], // локальный репозиторий
"hosts": ["tcp://0.0.0.0:2376", "unix:///var/run/docker.sock"], #
"storage-driver": "devicemapper",
"storage-opts": ["dm.thinpooldev=/dev/mapper/vg0-dockerpool",
. . .
}

systemctl restart docker
docker -H tcp://127.0.0.1:2376 info

export DOCKER_HOST=tcp://127.0.0.1:2376


-t             --tty
-i             --interactive
-d             --backgorund (daemon mode)
--rm           remove after exit
--name name
-u user:group       задать uid и группу для docker-пользователя (wmesto root)
--group-add group   дополнительная группа для docker-пользователя

docker run --name busy1 -ti --rm busybox /bin/sh

docker container ps     # стартованные контейнеры
docker container ps -a  # стартованные и остановленные контейнеры
docker container ps -aq # компактная выдача имен контейнеров

docker container top containername
docker container stats container1  container2  container3
docker container logs container1 -f # лог /var/lib/containers/cont...-json.log

docker run -d --name www1 nginx # запуск контейнера в бэкграунд
docker exec www1 ip addr show   # старт команды в созданном контейнере

docker container stop -t 20      www1  # сперва SIGSTOP, через 20 сек SIGKILL
docker container kill -s SIGSTOP www1

docker container rm www1  # -f - удалить даже стартованный, -v вместе с volumes



docker container cp www1:/etc/nginx/nginx.conf  .
docker container cp www1:/etc/nginx/ .       # реккурсивно директорию
docker container cp data/   www1:/etc/nginx  # реккурсивно в директорию
docker container cp data/.  www1:/etc/nginx  # реккурсивно на директорию
docker container exec www1 ls -al /etc/nginx
docker container cp www1:/etc/  - > www1-etc.tar  # выгрузка в TAR
docker container cp - www1:/   < www1-etc.tar     # закачка из TAR



docker container info www1
docker container inspect www1 # полный и выборочный JSON
docker container inspect -f 'Container {{.Name}} has pid {{.State.pid}}' www1



image - образ корневой файловой системы контейнера, скачивается с репозитория
     состоит из layers - TAR-архивов смонтированных последовательно в union-fs
     последний слой - "песочница", обеспечивает RW

docker image history python # история формирования слоев в image

docker image ls
docker image rm nginx   # удалить image (если с него не созданы контейнеры)
docker rmi   -f nginx   # удалить image убив все созданные с него контейнеры

docker image rm rep.host.name/reponame/imagename

docker search library
docker search -s 3 ssh   # искать image ssh с 3 звездами

Списки версий (tags) имаджa ubuntu в репозитории
curl https://registry.hub.docker.com/v1/repositories/ubuntu/tags

# скачать image
docker image pull nginx
docker image pull nginx:latest
docker image pull fedora:22
docker image pull registry.hub.docker.com/fedora:23
docker image pull server1.example.com:5000/bcroft/proj_red:v2



docker diff www1 # распечатать содержимое "песочницы" - измененные файлы

# закоммитить текущий RW-слой контейнера в image tar-layer
docker container commit -a "Author" -m "Add service" mega_app:latest
docker commit -c 'CMD ["python", "app2.py"]' -c 'ENV ver=2'


Популярность: 13, Last-modified: Sat, 04 Aug 2018 06:49:28 GMT