Docker: Unterschied zwischen den Versionen
Admin (Diskussion | Beiträge) |
Admin (Diskussion | Beiträge) |
||
Zeile 74: | Zeile 74: | ||
= Betrieb = | = Betrieb = | ||
== Beispiel == | |||
=== Container interaktive starten === | === Container interaktive starten === | ||
<source lang="bash" enclose="div"> | <source lang="bash" enclose="div"> | ||
Zeile 80: | Zeile 81: | ||
''Der lokale Port 666 zeigt auf den Port 80 im Docker-Image.'' | ''Der lokale Port 666 zeigt auf den Port 80 im Docker-Image.'' | ||
== Container starten == | |||
<source lang="bash" enclose="div"> | <source lang="bash" enclose="div"> | ||
docker.io start cc65f386f2d5 | docker.io start cc65f386f2d5 |
Version vom 15. September 2015, 20:58 Uhr
Installation
Paket für Ubuntu
apt-get install docker lxc
wget -qO- https://get.docker.com/ | sh
docker run hello-world
docker-compose
docker-compose macht das Leben ein wenig einfacher.
curl -L https://github.com/docker/compose/releases/download/1.3.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
Docker Image
docker run -p 666:80 -i -t ubuntu:12.04 /bin/bash
Der lokale Port 666 zeigt auf den Port 80 im Docker-Image.
Verwaltung
Finden und Herunterladen von Images
Images lassen sich sowohl mit dem Befehl
docker search gitlab
suchen. Eine Übersicht ist auch dem Docker-Webseite zu sehen. Mit dem Befehl
docker pull 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
Der lokale Port 666 zeigt auf den Port 80 im Docker-Image.
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
Liebling Docker Images
Special Gitlab
Gitlab arbeitet mit den Datenbanken:
- postgress
- mysql
- Redis
Einfachste Weg
wget https://raw.githubusercontent.com/sameersbn/docker-gitlab/master/docker-compose.yml
docker-compose up
Im Browser http://localhost:10080 aufrufen und mit den folgenden Zugangsdaten einloggen:
- username: root
- password: 5iveL!fe
Der manuelle Weg
Ist hier nicht vollständig beschrieben: siehe hier
docker pull sameersbn/gitlab:latest
docker pull sameersbn/mysql:latest
docker run --name=mysql-gitlab -d \
--env='DB_NAME=gitlabhq_production' \
--env='DB_USER=gitlab' --env='DB_PASS=password' \
--volume=/srv/docker/gitlab/mysql:/var/lib/mysql \
sameersbn/mysql:latest
The above command will create a database named gitlabhq_production and also create a user named gitlab with the password password with full/remote access to the gitlabhq_production database.
docker run --name=redis-gitlab -d \
--volume=/srv/docker/gitlab/redis:/var/lib/redis \
sameersbn/redis:latest
docker run --name=gitlab -d --link=mysql-gitlab:mysql --link=redis-gitlab:redisio \
--publish=10022:22 --publish=10080:80 \
--env='GITLAB_PORT=10080' --env='GITLAB_SSH_PORT=10022' \
--volume=/srv/docker/gitlab/gitlab:/home/git/data \
sameersbn/gitlab:latest
Here the image will also automatically fetch the DB_NAME, DB_USER and DB_PASS variables from the mysql container as they are specified in the docker run command for the mysql container. This is made possible using the magic of docker links.