[LINUX] Introduction à docker Création d'un environnement ubuntu dans ubuntu

Objectif

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.

couler

--Installez docker --Création d'un Dockerfile --Création d'une image docker --Démarrer le conteneur Docker --Connectez-vous au conteneur docker

installation de 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.

Créer un Dockerfile

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"]

De la création d'une image Docker à la connexion

Créer une image docker

$ 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

Démarrer le conteneur Docker

$ 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.

Connexion SSH au conteneur Docker

$ 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).

référence

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

Recommended Posts

Introduction à docker Création d'un environnement ubuntu dans ubuntu
De Ubuntu 20.04 introduction à la construction d'environnement
Comment créer un environnement NVIDIA Docker
[Docker] Créez un environnement jupyterLab (python) en 3 minutes!
Faire fonctionner mongoDB à partir de python dans l'environnement ubuntu ① Introduction de mongoDB
Les débutants Linux créent un environnement Ubuntu 16.04 sur Docker (pour Mac) -première moitié-
Étapes pour installer Ubuntu sur VirtualBox
Comment se connecter à Docker + NGINX
Comment déboguer Dash (Flask) dans Docker + VSCode + environnement de connexion à distance
Je veux créer un fichier pip et le refléter dans le menu fixe
Shellscript pour créer un environnement pyenv sur ubuntu d'un seul coup
[Introduction à Python] Comment utiliser la classe en Python?
Méthode pour créer un environnement Python dans Xcode 6
Utilisation de venv dans un environnement Windows + Docker [Python]
Étapes pour installer l'environnement Python sur Ubuntu
Créer un environnement Python + uWSGI + Nginx avec Docker
Pour référencer des variables d'environnement en Python dans Blender
Comment utiliser Tensorflow dans un environnement Docker
Introduction aux vecteurs: Algèbre linéaire en Python <1>
Introduction à la vérification de l'efficacité Chapitre 1 écrit en Python
Utiliser WebDAV dans un environnement Docker portable
Je voulais utiliser le notebook jupyter avec docker dans l'environnement pip (opticspy)
Maintenance de l'environnement réalisée avec Docker (je souhaite post-traiter GrADS en Python
Introduction à Scrapy (1)
Introduction à Scrapy (3)
Premiers pas avec Supervisor
Hello World avec gRPC / go dans l'environnement Docker
Introduction à Python Préparons l'environnement de développement
De rien sur Ubuntu 18.04 à la configuration d'un environnement Deep Learning sur Tensor
Introduction à Tkinter 1: Introduction
Réintroduction à Docker
[Latest] Comment créer un environnement Java sur Ubuntu
Installer le package python dans l'environnement personnel sur Ubuntu
tse --Introduction à l'éditeur de flux de texte en Python
Flutter dans Docker - Comment créer et utiliser un environnement de développement Flutter dans un conteneur Docker
Je veux créer une fenêtre avec Python
Comment créer un fichier JSON en Python
Introduction à PyQt
J'ai écrit "Introduction à la vérification des effets" en Python
Introduction à Scrapy (2)
Créer un environnement de Nginx + uWSGI + Python (Django) avec docker
[Linux] Introduction à Linux
Comment créer des données à mettre dans CNN (Chainer)
[Venv] Créer un environnement virtuel python sur Ubuntu
Introduction à Scrapy (4)
[Note] Comment créer un environnement de développement Ruby
Impossible de se connecter à MySQL depuis l'environnement Docker (Debian)
Introduction à Python "Re" 1 Construction d'un environnement d'exécution
Introduction à discord.py (2)
Comment créer une API Rest dans Django
[TF] Comment créer Tensorflow dans un environnement Proxy
Introduction à la vérification de l'efficacité Chapitre 2 écrit en Python
[Note] Comment créer un environnement de développement Mac
[Pour les débutants] Introduction à la vectorisation dans l'apprentissage automatique
Utilisez os.getenv pour obtenir des variables d'environnement en Python
mémo d'introduction tensorflow-gpu
mémo Linux (ubuntu)
Mémo d'introduction H2O.ai
Mémo de création de l'environnement de développement Ubuntu18.04
ConoHa VPS (ubuntu 18.04) Mémo de réglage initial
introduction
De Ubuntu 20.04 introduction à la construction d'environnement
Mémo de construction de l'environnement de développement Ubuntu Desktop 20.04
Mémo d'introduction d'Alembic (DB Schema Management Tool)
Introduction à docker Création d'un environnement ubuntu dans ubuntu