[LINUX] Einführung in Docker Erstellen einer Ubuntu-Umgebung in Ubuntu

Zweck

Es ist vielleicht keine wichtige Möglichkeit, Docker zu verwenden, aber ich möchte einen Ubuntu-Docker-Container erstellen und ihn für verschiedene Entwicklungen eingeben.

Es war mein erstes Mal, dass ich Docker berührte, und ich sah verschiedene Materialien, aber es gab nur wenige ähnliche Fälle, also als Memorandum.

fließen

Docker installieren

Folgen Sie Official Site

$ sudo apt-get remove docker docker-engine docker.io containerd runc

$ sudo apt-get update

$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

$ sudo apt-key fingerprint 0EBFCD88

$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

$ sudo apt-get update

$ sudo apt-get install docker-ce docker-ce-cli containerd.io

$ sudo docker run hello-world

Damit Hallo Welt. Bei dieser Geschwindigkeit konnte ich den Docker-Befehl nicht verwenden, ohne sudo hinzuzufügen

$ sudo gpasswd -a <user> docker

Dadurch ist kein Sudo mehr erforderlich.

Erstellen einer Docker-Datei

Die diesmal erstellte Docker-Datei lautet wie folgt.

#Geben Sie die zu verwendende Ubuntu-Version an
FROM ubuntu:18.04

#Installieren Sie den zu verwendenden Befehl
RUN \
	apt update && \
	apt -y upgrade && \
	apt install -y build-essential && \
	apt install -y software-properties-common && \
	apt install -y curl git man unzip vim wget sudo

#Erstellen eines Benutzers, da es unpraktisch ist, root zu sein
RUN useradd -m hoge
#Root-Berechtigung erteilen
RUN gpasswd -a hoge sudo
#Passwort auf Pass gesetzt
RUN echo 'hoge:pass' | chpasswd
#Setzen Sie die Shell für die SSH-Anmeldung auf Bash
RUN sudo sed -i 's/hoge:x:1000:1000::\/home\/hoge:\/bin\/sh/hoge:x:1000:1000::\/home\/hoge:\/bin\/bash/g' /etc/passwd

#Einstellungen für ssh (siehe offizielle Website)
RUN apt install -y openssh-server
RUN mkdir /var/run/sshd
RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
# SSH login fix. Otherwise user is kicked off after login
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
ENV NOTVISIBLE "in users profile"
RUN echo "export VISIBLE=now" >> /etc/profile
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]

Von der Erstellung eines Docker-Images bis zur Anmeldung

Docker-Image erstellen

$ docker build . -t myubuntu:18.04

In dem Verzeichnis ausführen, in dem sich die Docker-Datei befindet. myubuntu: 18.04 ist ein beliebiger Name. Sie können dies mit dem folgenden Befehl überprüfen.

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
myubuntu            18.04               iiiiiidddddd        6 minutes ago       496MB

Starten Sie den Docker-Container

$ docker run -d -P --name test myubuntu:18.04

Erstellen Sie einen Container aus dem Docker-Image und starten Sie ihn. Laufen Sie im Hintergrund mit -d, Verbinden Sie den ECPOSE-Port mit -P mit dem lokalen, Geben Sie den Containernamen mit --name an.

SSH-Verbindung zum Docker-Container

$ docker port test 22
0.0.0.0:32768

Ssh für den in angezeigten Port.

$ ssh hoge@localhost -p 32768
hoge@localhost's password:<pass>

Welcome to Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-47-generic x86_64)
...
hoge@nyonyonyo:~$

Ich konnte ssh mit user hoge im container verbinden und bash starten! Der Rest wird in diesem (sollte) entwickelt.

Referenz

https://docs.docker.com/engine/examples/running_ssh_service/ https://qiita.com/techno-tanoC/items/58e9c5c74d90392d9de4

Recommended Posts

Einführung in Docker Erstellen einer Ubuntu-Umgebung in Ubuntu
Ab Ubuntu 20.04 Einführung in die Umgebungskonstruktion
So erstellen Sie eine NVIDIA Docker-Umgebung
[Docker] Erstellen Sie in 3 Minuten eine jupyterLab (Python) -Umgebung!
Betreiben Sie mongoDB von Python in einer Ubuntu-Umgebung. ① Einführung von mongoDB
Linux-Anfänger erstellen eine Ubuntu 16.04-Umgebung auf Docker (für Mac) - erste Hälfte
Schritte zum Installieren von Ubuntu auf VirtualBox
So melden Sie sich bei Docker + NGINX an
So debuggen Sie Dash (Flask) in der Docker + VSCode + Remote-Verbindungsumgebung
Ich möchte eine Pipfile erstellen und im Docker wiedergeben
Shellscript zum Erstellen einer Pyenv-Umgebung auf Ubuntu auf einmal
[Einführung in Python] Wie verwende ich eine Klasse in Python?
Methode zum Erstellen einer Python-Umgebung in Xcode 6
Verwenden von venv in der Windows + Docker-Umgebung [Python]
Schritte zum Installieren der Python-Umgebung unter Ubuntu
Erstellen Sie mit Docker eine Python + uWSGI + Nginx-Umgebung
Verweisen auf Umgebungsvariablen in Python in Blender
Verwendung von Tensorflow unter Docker-Umgebung
Einführung in Vektoren: Lineare Algebra in Python <1>
Einführung in die Überprüfung der Wirksamkeit Kapitel 1 in Python geschrieben
Verwenden Sie WebDAV in einer Portable Docker-Umgebung
Ich wollte ein Jupyter-Notebook mit Docker in einer Pip-Umgebung (Opticspy) verwenden.
Mit Docker durchgeführte Umgebungswartung (Ich möchte GrADS in Python nachbearbeiten
Einführung in Scrapy (1)
Einführung in Scrapy (3)
Erste Schritte mit Supervisor
Hallo Welt mit gRPC / go in Docker-Umgebung
Einführung in Python Bereiten wir die Entwicklungsumgebung vor
Von nichts unter Ubuntu 18.04 bis zum Einrichten einer Deep Learning-Umgebung auf Tensor
Einführung in Tkinter 1: Einführung
Wiedereinführung in Docker
[Neueste] So erstellen Sie eine Java-Umgebung unter Ubuntu
Installieren Sie das Python-Paket in einer persönlichen Umgebung unter Ubuntu
tse - Einführung in den Text Stream Editor in Python
Flutter in Docker - Erstellen und Verwenden einer Flutter-Entwicklungsumgebung in einem Docker-Container
Ich möchte mit Python ein Fenster erstellen
So erstellen Sie eine JSON-Datei in Python
Einführung in PyQt
Geschrieben "Einführung in die Effektüberprüfung" in Python
Einführung in Scrapy (2)
Erstellen Sie mit Docker eine Umgebung aus Nginx + uWSGI + Python (Django)
[Linux] Einführung in Linux
So erstellen Sie Daten für CNN (Chainer)
[Venv] Erstellen Sie eine virtuelle Python-Umgebung unter Ubuntu
Einführung in Scrapy (4)
[Hinweis] So erstellen Sie eine Ruby-Entwicklungsumgebung
Es kann keine Verbindung zu MySQL über die Docker-Umgebung (Debian) hergestellt werden.
Einführung in Python "Re" 1 Erstellen einer Ausführungsumgebung
Einführung in discord.py (2)
So erstellen Sie eine Rest-API in Django
[TF] So erstellen Sie Tensorflow in einer Proxy-Umgebung
Einführung in die Überprüfung der Wirksamkeit Kapitel 2 in Python geschrieben
[Hinweis] So erstellen Sie eine Mac-Entwicklungsumgebung
[Für Anfänger] Einführung in die Vektorisierung beim maschinellen Lernen
Verwenden Sie os.getenv, um Umgebungsvariablen in Python abzurufen
Tensorflow-GPU Einführungsnotiz
Linux (Ubuntu) Memo
H2O.ai Einführungsnotiz
Ubuntu18.04 Memo zur Erstellung der Entwicklungsumgebung
ConoHa VPS (Ubuntu 18.04) Memo zur Ersteinstellung
Einführung
Ab Ubuntu 20.04 Einführung in die Umgebungskonstruktion
Konstruktionsnotiz für die Ubuntu Desktop 20.04-Entwicklungsumgebung
Einführungsnotiz zu Alembic (DB Schema Management Tool)
Einführung in Docker Erstellen einer Ubuntu-Umgebung in Ubuntu