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.
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.
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"]
$ 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
$ 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.
$ 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.
https://docs.docker.com/engine/examples/running_ssh_service/ https://qiita.com/techno-tanoC/items/58e9c5c74d90392d9de4
Recommended Posts