Mount-Verzeichnis in Container und Freigabe mit Host

Ich dachte, ich Verstand die docs, aber ich vielleicht nicht. Ich hatte den Eindruck, dass die -v /HOST/PATH:/CONTAINER/PATH Kennzeichen ist bi-direktional. Wenn wir Datei oder Verzeichnisse in die container, Sie wäre gespiegelt auf dem host-geben uns die Möglichkeit, die Verzeichnise und Dateien auch nach der deinstallation ein docker-container.

In der offiziellen MySQL-docker-images, das funktioniert. Die /var/lib/mysql gebunden werden können, um die host-und überleben neu gestartet und Ersatz der container unter Beibehaltung der Daten auf dem host.

Schrieb ich einen docker-Datei für sphinxsearch-2.2.9 nur als eine Praxis und zum Wohle von lernen und verstehen, hier ist es:

FROM debian

ENV SPHINX_VERSION=2.2.9-release

RUN apt-get update -qq && DEBIAN_FRONTEND=noninteractive apt-get install -yqq\
    build-essential\
    wget\
    curl\
    mysql-client\
    libmysql++-dev\
    libmysqlclient15-dev\
    checkinstall

RUN wget http://sphinxsearch.com/files/sphinx-${SPHINX_VERSION}.tar.gz && tar xzvf sphinx-${SPHINX_VERSION}.tar.gz && rm sphinx-${SPHINX_VERSION}.tar.gz

RUN cd sphinx-${SPHINX_VERSION} && ./configure --prefix=/usr/local/sphinx

EXPOSE 9306 9312

RUN cd sphinx-${SPHINX_VERSION} && make

RUN cd sphinx-${SPHINX_VERSION} && make install

RUN rm -rf sphinx-${SPHINX_VERSION}

VOLUME /usr/local/sphinx/etc
VOLUME /usr/local/sphinx/var

Sehr einfach und leicht um Ihren Kopf gewickelt, während Sie lernen. Ich bin die Zuordnung der /etc & /var Verzeichnisse von der sphinx zu bauen, um die VOLUME-Befehl zu denken, dass es mir erlauben wird, etwas zu tun, wie -v ~/dev/sphinx/etc:/usr/local/sphinx/etc -v ~/dev/sphinx/var:/usr/local/sphinx/varaber es ist nicht, stattdessen ist es ein überschreiben der Verzeichnisse in den container und lässt Sie leer. Wenn ich entfernen Sie die -v-Optionen und erstellen Sie den container, die Verzeichnisse zu den erwarteten Dateien und Sie werden nicht überschrieben.

Dies ist, was ich führen Sie zum erstellen der docker-Datei navigieren Sie zu dem Verzeichnis, das es in: docker build -t sphinxsearch .

Und sobald ich das habe, erstellte ich Folgendes tun, um einen container erstellen, basierend auf, dass Bild: docker run -it --hostname some-sphinx --name some-sphinx --volume ~/dev/docker/some-sphinx/etc:/usr/local/sphinx/etc -d sphinxsearch

Ich würde wirklich zu schätzen jede Hilfe und Einsicht, wie diese zu arbeiten. Ich schaute auf die MySQL-Bilder und sehe nichts Magisches, das Sie haben, um das Verzeichnis gebunden werden, Sie verwendeten LAUTSTÄRKE.

Vielen Dank im Voraus.

InformationsquelleAutor der Frage Hatem Jaber | 2015-07-30

Schreibe einen Kommentar