Ce n'est peut-être pas un moyen majeur d'utiliser docker, mais j'aimerais créer un conteneur docker ubuntu et le saisir pour divers développements.
C'était la première fois que je touchais à docker, et j'ai vu divers documents, mais il y avait peu de cas similaires, donc sous forme de mémorandum.
--Installez docker --Création d'un Dockerfile --Création d'une image docker --Démarrer le conteneur Docker --Connectez-vous au conteneur docker
Suivez Site officiel
$ 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
Avec ça, Bonjour tout le monde. À ce rythme, je ne pouvais pas utiliser la commande docker sans ajouter sudo, donc
$ sudo gpasswd -a <user> docker
Cela élimine le besoin de sudo.
Le Dockerfile créé cette fois est le suivant.
#Spécifiez la version d'ubuntu à utiliser
FROM ubuntu:18.04
#Installez la commande à utiliser
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
#Créer un utilisateur car il n'est pas pratique d'être root
RUN useradd -m hoge
#Accorder l'autorité racine
RUN gpasswd -a hoge sudo
#Mot de passe défini pour réussir
RUN echo 'hoge:pass' | chpasswd
#Définissez le shell pour la connexion ssh sur 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
#Paramètres pour ssh (voir site officiel)
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
Exécutez dans le répertoire où le Dockerfile est placé. myubuntu: 18.04 est un nom arbitraire. Vous pouvez le vérifier avec la commande suivante.
$ 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
Créez un conteneur à partir de l'image du docker et démarrez-le.
Exécuter en arrière-plan avec -d
,
Connectez le port ECPOSE avec -P
au local,
Spécifiez le nom du conteneur avec --name
.
$ docker port test 22
0.0.0.0:32768
Ssh pour le port affiché dans.
$ 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:~$
J'ai pu me connecter avec l'utilisateur hoge dans le conteneur et démarrer bash! Le reste sera développé dans ce (devrait).
https://docs.docker.com/engine/examples/running_ssh_service/ https://qiita.com/techno-tanoC/items/58e9c5c74d90392d9de4
Recommended Posts