Docker

Externi odkazy

Sluzba docker

systemctl start docker.io
rm -rf /var/lib/docker/aufs … v pripade problemu se startem je toto oprava

Obrazy

docker search centos … hleda CentOS obrazy na hub.docker.com/_/centos/
docker pull centos:7 … stahne Centos obraz z hub.docker.com/_/centos/
docker pull jdeathe/centos-ssh … Centos 7 + ssh
docker images … seznam obrazu
docker history centos:7 … historie obrazu (kdy se dely jake upravy)
docker inspect centos:7 … podrobne informace o obrazu, jako treba obsah Docker souboru

Kontejnery

docker run -i -t -p 80:80 d4350798c2ee /bin/bash … spusti kontejner s prikazem bash
docker --mount type=bind,source=/mnt/docker1,target=/data,readonly --name “kontejner_s_diskem” kontejner1 … vytvori novy kontejner z obrazu kontejner1, pojmenuje ho a namountuje disk
docker run -mount source=myvol2,target=/app kontejner … vytvori kontejner s namountovanym volume
docker run -v myvol,/app kontejner … to same
docker run –rm -it –cap-add=SYS_ADMIN debian:jessie … spusti docker se SYS_ADMIN pravama (moznost mountovat file systemy a jine)
docker ps -a … vylistuje kontejnery
docker ps -a -q -f ancestor=image1 … vylistuje jen kontejnery vznikle z obrazu image1, zobrazi jen ID (lze kombinovat s docker rm atd)
docker start 3a09b2588478 … spusti kontejner
docker stop 3a09b2588478 … ukonci konterner
docker rm -f 3a09b2588478 … smaze kontejner, i pokud jede
docker attach 3a09b2588478 … pripoji se ke kontejneru
docker exec -i 3a09b2588478 /bin/bash … spusti interaktivne na kontejneru bash
docker commit 3a09b2588478 ubuntu:14.04 … ulozi kontejner jako novy image
docker container ls -a … seznam vsech kontejneru, vcetne stopnutych
docker logs 3a09b2588478 … vypis konzole kontejneru

volumes - disky

docker volume create my-vol … vytvori novy volume
docker volume inspect my-vol … ukaze informace o volume
docker rm inspect my-vol … smaze volume

Export/import

docker import /tmp/konterner.tgz … naimportuje kontejner ze souboru
docker import –message “konterner s debug parametrem” –change “ENV DEBUG 1” http://tomas.lipensky.cz/kontejner.tgz … import z URL, komentar a zmena v kontejneru
tar -c . | docker import - importovanykontys … import z aktualniho adresare
docker export kontejner1 > kontejner1.tar … export konterneru do souboru
docker export –output=“kontejner2.tar” kontejner2 … export do souboru

Dockerfile

Soubor z ktereho se builduji dalsi images

FROM local/c7-systemd
RUN yum -y install httpd; yum clean all; systemctl enable httpd.service
EXPOSE 80
CMD ["/usr/sbin/init"]

docker build --rm -t local/c7-systemd-httpd … vytvori z obrazu jiny obraz, provede prikazy z Dockerfile

Docker pod Windows

(Get-Item “HKLM:SOFTWARE\Microsoft\Windows NT\CurrentVersion”).GetValue('ReleaseID') … napr 1709
docker search microsoft/ … seznam dosupnych obrazu z microsoftu
docker image pull microsoft/nanoserver :1709 … stazeni obrazu pro tento system
docker image pull microsoft/powershell … stahne posledni verzi obrazu, nemusi podporovat tuto verzi WIndows
docker run -it -u Administrator microsoft/powershell cmd … spusti obraz pod administratorem (nelze spustit primo powershell)

SFTP kontejner - ukazka:

FROM microsoft/powershell:nanoserver-1803
SHELL ["pwsh.exe", "-command"]
ENV ProgramFiles="C:\Program Files"
RUN mkdir /tmp
RUN [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest -uri  https://github.com/PowerShell/Win32-OpenSSH/releases/download/v7.9.0.0p1-Beta/OpenSSH-Win64.zip -outFile /tmp/OpenSSH-Win64.zip;
RUN Expand-Archive -Path /tmp/OpenSSH-Win64.zip -DestinationPath /;
RUN mkdir C:/Programdata/ssh; mkdir /payment-la
COPY sshd_config /Programdata/ssh/sshd_config
RUN cd OpenSSH-Win64; & ./ssh-keygen.exe -A;
#RUN net user tomas tomas123 /ADD
CMD ["C:\\OpenSSH-Win64\\sshd.exe", "-d", "-f", "C:\\Programdata\\ssh\\sshd_config"]