Docker ist ein "praktisches Tool, mit dem sich problemlos eine Entwicklungsumgebung erstellen lässt".
Selbst wenn Sie ernsthaft Baseball spielen möchten, ist es schwierig, einen Platz zu finden ... Bereiten Sie eine Basis vor, messen Sie die Entfernung, bereiten Sie einen Schläger, einen Ball und einen Zuschauersitz vor. Jedoch! Mit Docker können Sie sofort eine PayPay-Kuppel erstellen! (Nicht beendet.)
Baseballfelder sind nicht möglich, aber in einer Systementwicklungsumgebung.
Es ist eine praktische Anwendung, mit der Sie sofort eine Systementwicklungsumgebung erstellen und diese Umgebung an mehrere Personen verteilen können.
In diesem Artikel werden Konzepte wie Container nicht speziell behandelt. Ich erstelle einen Artikel für die folgenden Zwecke.
――Sie können Docker tatsächlich berühren und das Gefühl haben, dass die Systemumgebung bereit ist. ――Sie können es sofort herausziehen, wenn Sie sich später daran erinnern.
Nezko! !! !! !! !! !! Docker Ich werde mein Bestes geben, um es zu benutzen! !! !!
* Wenn Sie es noch nicht installiert haben, besuchen Sie bitte die offizielle Website oben. </ font>
Insbesondere habe ich studiert und mich auf die Top-Seite bezogen. Das Konzept ist gut beschrieben. Wenn Sie diesen Artikel lesen, werfen Sie bitte einen Blick darauf.
Erstellen Sie einen Container mit PHP und Apach, die unter CentOS7 installiert sind.
① Erstellen Sie eine Docker-Datei an einem beliebigen Ort (Dateiname: Docker-Datei) 2 Erstellen Sie ein Bild aus der erstellten Docker-Datei. ③ Erstellen Sie einen Container basierend auf dem Bild.
dockerfile
#Basierend auf dem centos7-Image von Docker Hub.
FROM centos:centos7
#Installieren Sie Apach und PHP in Centos7 Image
RUN yum -y install httpd php
#Führen Sie den Befehl aus, um Åpach zu starten
CMD ["/usr/sbin/httpd","-DFOREGROUND"]
Erläuterungen zu den Optionen finden Sie unter Docker Document Japaneseization Project.
#Inhalt
docker build -t Bildname:Tag-Name Dockerfile-Verzeichnis
#Beispiel | Der Bildname ist lamptest. Tag ist 1.0. Verwenden Sie die aktuelle Docker-Datei des Verzeichnisses
docker build -t lamptest:1.0 .
Das obige erstellt ein Bild.
#Inhalt
docker run -d -p Portnummer:Port-Nummer--Name Containername Bildname:Verlinke den Namen
#Beispiel | Weisen Sie die Version 80 der Version 8080 zu.
#Der Containername lautet testserver.
#Bilder und Tags sind am lahmsten:1.Verwenden Sie 0.
docker run -d -p 8080:80 --name testserver lamptest:1.0
Der Container ist erfolgreich abgeschlossen.
Wenn Sie auf [http: // localhost: 8080](http: // localhost: 8080) zugreifen, wird der folgende Bildschirm angezeigt.
#Anlaufen
Docker-Startcontainername
#Halt
Docker Stop Container Name
#Geh in den Behälter
docker exec -i -t Containername bash
Die Operation ist auch mit der GUI möglich.
Die häufig verwendeten werden kurz beschrieben. Weitere Informationen finden Sie unter Docker Document Japaneseization Project.
From Erstellen Sie basierend auf dem Docker-Image.
#Inhalt
FROM Bildname:Verlinke den Namen
#Beispiel | Basierend auf dem Bild von Centos
FROM centos:centos7
Run Führen Sie den Befehl für das in FROM angegebene Image aus.
#Inhalt
FROM Befehl zum Ausführen
#Beispiel | httpd mit yum installieren
RUN yum -y install httpd
COPY Geben Sie die Datei, die Sie kopieren möchten, im Docker-Image (im Container) an.
#Inhalt
Pfad der Datei, die Sie in das FROM-Image kopieren möchten Pfad des Kopierzielbilds
#Beispiel | hoge-Datei im selben Verzeichnis wie Dockerfile,/In das tmp-Verzeichnis kopieren.
COPY hoge.txt /tmp
ADD Wenn Sie eine Datei angeben, die über eine URL angegeben werden kann und vom Tar-Archiv (gzip, bzip2, xz) komprimiert wird, wird sie automatisch erweitert. Davon abgesehen ist es dasselbe wie der Befehl COPY.
#Inhalt
Der Dateipfad oder die URL, die Sie in das ADD-Image kopieren möchten.
#Beispiel | tar.Bildspeicherung beim Erweitern der gz-Datei
ADD hoge.tar.gz /tmp
#Beispiel | Speichern Sie die URL-Zieldatei im angegebenen Verzeichnis.
ADD https://zukan.pokemon.co.jp/detail/025 /tmp
RUN Führen Sie den Befehl beim Erstellen des Bildes aus.
#Inhalt
RUN-Befehlsoption
#Beispiel | ls Befehl-Mit der Option a.
RUN ls -a
CMD Führen Sie den Befehl aus, wenn der Container gestartet wird.
#Inhalt
CMD [Befehl,Möglichkeit]
#Beispiel | ls Befehl-Mit der Option a.
CMD [ ls , -a ]
ENV Geben Sie einen Wert in die Anzahl der Umgebungsvariablen ein. (Gleich kann weggelassen werden.)
#Inhalt
Name der ENV-Umgebungsvariablen=Wert der Umgebungsvariablen
Name der ENV-Umgebungsvariablen Wert der Umgebungsvariablen
#Beispiel | Ichinokata in die Umgebungsvariable MIZUNOKOKYU einfügen
ENV MIZUNOKOKYU=ichinokata
USER Name der Benutzerausführung wechseln
#Inhalt
USER Benutzername
#Beispiel | Wechseln Sie den Benutzernamen zu akiunleash
USER akiunleash
Es ist möglich, mehrere Container mit Apps und Datenbanken als ein System zu erstellen. Lassen Sie uns Rails- und PostgreSQL-Container separat erstellen und als ein System zusammenarbeiten.
① Erstellen Sie die erforderlichen Dateien wie docker-compose.yml ② Erstellen Sie ein Bild und einen Container mit Docker-Compose Run ③ Gemfile wird aktualisiert. Erstellen Sie es daher erneut mit Docker-Compose-Bulde. ④ Ändern Sie die Einstellungen für Benutzername und Kennwort, damit Sie von der Rails-Seite aus eine Verbindung zu PostgreSQL herstellen können. ⑤ Erstellen Sie eine PostgreSQL-Datenbank aus Rails ⑥ Fertigstellung!
docker-compose.yml
version: '3'
services:
db:
image: postgres
environment:
- POSTGRES_PASSWORD=password
web:
build: .
command: bundle exec rails s -p 3000 -b '0.0.0.0'
volumes:
- .:/myapp
ports:
- "3000:3000"
depends_on:
- db
dockerfile
#Basierend auf dem centos7-Image von Docker Hub.
FROM ruby:2.3.3
#Aus dem Paketverwaltungssoftware-Update
# build-essential libpq-Installieren Sie dev nodejs
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs
#Erstellen Sie das myapp-Verzeichnis im Container
RUN mkdir /myapp
#Im Arbeitsverzeichnis einstellen
WORKDIR /myapp
#Erstellen Sie eine Datei im selben Verzeichnis wie die Docker-Datei im Container
ADD Gemfile /myapp/Gemfile
ADD Gemfile.lock /myapp/Gemfile.lock
#Installieren Sie in Gemfile geschriebene Schienen
RUN bundle install
#Erstellen Sie Rails-Dateien und -Verzeichnisse in Containern
ADD . /myapp
Gemfile
source 'https://rubygems.org'
gem 'rails', '5.0.0.1'
Gemfile.lock
#Leere Akte
docker-compose run web rails new . --force --database=postgresql
docker-compose build
config/database.yml
default: &default
adapter: postgresql
encoding: unicode
host: db
username: postgres
password: password
pool: 5
development:
<<: *default
database: myapp_development
test:
<<: *default
database: myapp_test
production:
<<: *default
database: myapp_production
username: myapp
password: <%= ENV['MYAPP_DATABASE_PASSWORD'] %>
docker-compose up -d
docker-compose run web rake db:create
Wenn Sie auf [http: // localhost: 3000 /](http: // localhost: 3000 /) zugreifen und die folgende Seite angezeigt wird, ist dies erfolgreich.
Sie können sehen, dass der Container auch ordnungsgemäß gestartet wurde.
Wenn es unnötige Container enthält, wird es einmal heruntergefahren und verschwindet beim Neustart.
#Einmal unten
docker-compose down
#Seite nach oben
docker-compose up -d
docker-compose.yml
version: '3'
services:
db:
image: postgres
environment:
- POSTGRES_PASSWORD=password
web:
build: .
command: bundle exec rails s -p 3000 -b '0.0.0.0'
volumes:
- .:/myapp
ports:
- "3000:3000"
depends_on:
- db
Artikel | Erläuterung |
---|---|
version | docker-Version verfassen |
services | Containername (WEB und DB erstellen) |
image | Verwenden Sie das Bild von Docker Hub |
environment | Umgebungsvariablen festlegen |
build | Verwenden Sie die angegebene Docker-Datei. |
command | Befehle, die nach dem Erstellen eines Containers ausgeführt werden sollen |
volumes | Datei einhängen |
ports | Angeben eines Ports |
depends_on | Startreihenfolge |
Ich hoffe, es hilft Ihnen, ein Gefühl dafür zu bekommen, was Docker ist. Wenn Sie Fehler im Inhalt finden, lassen Sie es uns bitte wissen.
Datum | Inhalt |
---|---|
2020/11/18 | Erste Ausgabe |
Recommended Posts