Docker: Unterschied zwischen den Versionen
| Admin (Diskussion | Beiträge) K (→ARM) | Admin (Diskussion | Beiträge)  | ||
| Zeile 28: | Zeile 28: | ||
| </source> | </source> | ||
| =  | = Docker Registry = | ||
| = Arbeiten mit Docker = | |||
| == Docker Image == | == Docker Image == | ||
| === ARM === | === ARM === | ||
| Zeile 56: | Zeile 45: | ||
| ''Der lokale Port 666 zeigt auf den Port 80 im Docker-Image.'' | ''Der lokale Port 666 zeigt auf den Port 80 im Docker-Image.'' | ||
| =  | |||
| === Finden  | |||
| = Hilfen =   | |||
| == docker-compose == | |||
| docker-compose macht das Leben ein wenig einfacher. | |||
| <source lang="bash" enclose="div"> | |||
|  curl -L https://github.com/docker/compose/releases/download/1.8.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose | |||
|  chmod +x /usr/local/bin/docker-compose | |||
| </source> | |||
| == Dockerimage Architektur == | |||
| <source lang="bash" enclose="div"> | |||
|   docker inspect 882059b7ca70 | jq '.[] | .Architecture' | |||
|   docker search armhf- | |||
| </source> | |||
| == Finden von ferigen Images == | |||
| Images lassen sich sowohl mit dem Befehl | Images lassen sich sowohl mit dem Befehl | ||
| <source lang="bash" enclose="div"> | <source lang="bash" enclose="div"> | ||
| Zeile 63: | Zeile 69: | ||
| </source> | </source> | ||
| suchen. Eine Übersicht ist auch dem Docker-Webseite zu sehen. | suchen. Eine Übersicht ist auch dem Docker-Webseite zu sehen. | ||
| = Verwaltung = | |||
| Mit dem Befehl | Mit dem Befehl | ||
| <source lang="bash" enclose="div"> | <source lang="bash" enclose="div"> | ||
Version vom 15. Januar 2017, 20:30 Uhr
Installation
Ubuntu (x86)
  apt-get update
  apt-get install apt-transport-https ca-certificates
  apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
  echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" > /etc/apt/sources.list.d/docker.list
  apt-get update
  apt-get purge lxc-docker
  apt-cache policy docker-engine
  apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual
  apt-get install docker-engine
  service docker start
  docker run hello-world # Test
Raspbian (arm)
  curl -sSL https://get.docker.com | sh
Docker Registry
Arbeiten mit Docker
Docker Image
ARM
-v|--volume[=[[HOST-DIR:]CONTAINER-DIR[:OPTIONS]]]
  docker run -d -p 80:80/tcp -p 443:443/tcp -v /conf.d:/conf.d forumi0721alpinearmhf/alpine-armhf-nginx:latest
x86
 docker run -p 666:80 -i -t ubuntu:12.04 /bin/bash
Der lokale Port 666 zeigt auf den Port 80 im Docker-Image.
Hilfen
docker-compose
docker-compose macht das Leben ein wenig einfacher.
 curl -L https://github.com/docker/compose/releases/download/1.8.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
 chmod +x /usr/local/bin/docker-compose
Dockerimage Architektur
  docker inspect 882059b7ca70 | jq '.[] | .Architecture'
  docker search armhf-
Finden von ferigen Images
Images lassen sich sowohl mit dem Befehl
 docker search gitlab
suchen. Eine Übersicht ist auch dem Docker-Webseite zu sehen.
Verwaltung
Mit dem Befehl
 docker pull sameersbn/gitlab
lassen sich dann die Iamges herunterladen. Dabei steht der Teil vor dem / für den Nutzer, das das Image erzeugt hat und der Teil nach dem Schrägstrich für das Programm, welches durch das Image bereitgestellt wird.
Liste aller lokal vorliegenden Images
Die Liste der lokal vorliegenden Images lass sich mit dem Befehl
  docker images
anzeigen. Ein mögliches Ergebnis könnte so aussehen:
REPOSITORY             TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
sameersbn/gitlab       latest              5e06a7e49560        34 hours ago        631.6 MB
sameersbn/gitlab       7.11.4-1            e07ed8d5eff4        3 months ago        617 MB
sameersbn/redis        latest              44943bcb43f1        3 months ago        199.2 MB
sameersbn/mysql        latest              d9d83f2d5b98        3 months ago        325.9 MB
hello-world            latest              91c95931e552        5 months ago        910 B
sameersbn/postgresql   9.4                 271ad7e099d3        7 months ago        228.2 MB
nginx                  latest              61e8f94e1d65        14 months ago       499.1 MB
Anzeige der verfügbaren Container
Die zur Verfügung stehenden Container kann man mit folgendem Befehl anzeigen lassen:
 docker.io ps -a
Die Liste sieht dann wie folgt aus.
CONTAINER ID  IMAGE    COMMAND  CREATED       STATUS                  PORTS                NAMES
cc65f386f2d5  nginx:1  nginx    9 months ago  Exited (1) 8 months ago 0.0.0.0:7890->80/tcp dc-nginx
Löschen von Images und Containern
Die Images, die bei Nichtbenutzung nur viel Speicherplatz belegen, lassen sich mit dem Befehl
docker rmi <image>
löschen. Analog gilt für das Entfernen von Containern:
docker rm <container>
Betrieb
Beispiel
Container interaktive starten
docker run -p 666:80 -i -t ubuntu:latest /bin/bash
Es existiert nun eine Portweiterelitung vom lokalen Port 666 auf den Port 80 im Docker-Image. Außerdem befinde ich mich jetzt im Image.
Als erstes werden Entwicklungswerkzeuge installiert:
apt-get install debconf-utils pv bc lzop zip binfmt-support bison build-essential ccache debootstrap flex gawk gcc-arm-linux-gnueabihf lvm2 qemu-user-static u-boot-tools uuid-dev zlib1g-dev unzip libusb-1.0-0-dev parted pkg-config expect gcc-arm-linux-gnueabi libncurses5-dev git vim screen
Dann folgt git und ein Entwicklungsverzeichnis:
apt-get install git
mkdir -p /root/Lime-Debian/output/
cd /root/Lime-Debian/
U-boot, or universal boot is the bootloader used by ARM and other embedded devices. It is similar to GRUB or LILO however much smaller. We'll be building it from source for the Olimex A20 LIME2 board.
git clone https://github.com/RobertCNelson/u-boot /root/Lime-Debian/output/u-boot
cd output/u-boot
make -s CROSS_COMPILE=arm-linux-gnueabihf- clean
make -j2 A20-OLinuXino-Lime2_defconfig CROSS_COMPILE=arm-linux-gnueabihf-
make -j2 CROSS_COMPILE=arm-linux-gnueabihf-
Container starten
 docker.io start cc65f386f2d5
CONTAINER ID  IMAGE    COMMAND  CREATED       STATUS       PORTS                NAMES
cc65f386f2d5  nginx:1  nginx    9 months ago  Up 3 seconds 0.0.0.0:7890->80/tcp dc-nginx
Container stoppen
 docker.io stop cc65f386f2d5
Benutzung
 docker.io attach cc65f386f2d5

