Essayez de mettre Docker dans ubuntu sur WSL

J'ai installé Docker sur Ubuntu 18.04 sur WSL2 et j'ai essayé de le toucher, je vais donc laisser une note.

Environnement de travail

Configuration d'Ubuntu

La construction Ubuntu sur WSL2 est résumée dans l'article suivant. J'ai essayé de construire Ubuntu 18.04 sur WSL

Version Docker

19.03.13

couler

  1. Installation de Docker
  2. Diverses commandes Docker

1. Installation de Docker

Installez en vous référant au site suivant. Installer Docker sur Ubuntu 18.04 LTS

Configurer un référentiel Docker

Mettez à jour les packages, installez les packages requis et installez la clé publique officielle de Docker GPG.

$ sudo apt update
$ sudo apt 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"

Installation de Docker

Installez la dernière version de Docker.

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

Confirmez l'installation.

$ sudo docker --version
$ sudo systemctl status docker

Effectuez les opérations suivantes lors de la configuration du proxy.

Créez un fichier de paramètres proxy et écrivez les paramètres requis.

$ sudo mkdir -p /etc/systemd/system/docker.service.d
$ sudo vi /etc/systemd/system/docker.service.d/http-proxy.conf

http-proxy.conf


[Service]
  Environment="HTTP_PROXY=http://proxy.example.com:8080/"
  Environment="HTTPS_PROXY=http://proxy.example.com:8080/"

Appliquez les modifications et reflétez les paramètres. Assurez-vous qu'il est défini à la fin.

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
$ systemctl show --property=Environment docker

Lorsque les informations décrites dans le fichier de paramètres sont affichées, le processus est terminé.

Définissez les paramètres pour exécuter les commandes Docker sans sudo.

Commençons par vérifier la situation actuelle.

$ docker images

Une erreur se produira avec l'autorisation refusée.

Placez l'utilisateur cible dans le groupe Docker. Veuillez vous connecter une fois à l'utilisateur cible.

$ sudo usermod -aG docker ${USER}
$ su - ${USER}

Confirmez que les paramètres ont été définis.

$ docker images

Si aucune erreur ne se produit, vous avez terminé.

2. Diverses commandes Docker

Démarrage / arrêt / vérification de l'état de Docker

$ sudo systemctl start docker
$ sudo systemctl stop docker
$ sudo systemctl status docker

Recherche d'image

$ docker search [OPTIONS] TERM

En mettant httpd, mysql, etc. dans TERM, le référentiel fourni est affiché.

Par exemple, essayez de rechercher avec httpd.

$ docker search httpd

Les résultats suivants ont été renvoyés.

NAME                                    DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
httpd                                   The Apache HTTP Server Project                  3261                [OK]
centos/httpd-24-centos7                 Platform for running Apache httpd 2.4 or bui…   36
centos/httpd                                                                            33                                      [OK]
arm32v7/httpd                           The Apache HTTP Server Project                  9
polinux/httpd-php                       Apache with PHP in Docker (Supervisor, CentO…   4                                       [OK]
salim1983hoop/httpd24                   Dockerfile running apache config                2                                       [OK]
solsson/httpd-openidc                   mod_auth_openidc on official httpd image, ve…   1                                       [OK]
publici/httpd                           httpd:latest                                    1                                       [OK]
clearlinux/httpd                        httpd HyperText Transfer Protocol (HTTP) ser…   1
hypoport/httpd-cgi                      httpd-cgi                                       1                                       [OK]
jonathanheilmann/httpd-alpine-rewrite   httpd:alpine with enabled mod_rewrite           1                                       [OK]
dariko/httpd-rproxy-ldap                Apache httpd reverse proxy with LDAP authent…   1                                       [OK]
lead4good/httpd-fpm                     httpd server which connects via fcgi proxy h…   1                                       [OK]
dockerpinata/httpd                                                                      0
interlutions/httpd                      httpd docker image with debian-based config …   0                                       [OK]
appertly/httpd                          Customized Apache HTTPD that uses a PHP-FPM …   0                                       [OK]
amd64/httpd                             The Apache HTTP Server Project                  0
manasip/httpd                                                                           0
trollin/httpd                                                                           0
e2eteam/httpd                                                                           0
manageiq/httpd_configmap_generator      Httpd Configmap Generator                       0                                       [OK]
itsziget/httpd24                        Extended HTTPD Docker image based on the off…   0                                       [OK]
manageiq/httpd                          Container with httpd, built on CentOS for Ma…   0                                       [OK]
ppc64le/httpd                           The Apache HTTP Server Project                  0

Vous pouvez voir que The Apache HTTP Server Project publie officiellement une image nommée httpd.

Acquisition d'image

$ docker pull [OPTIONS] NAME[:TAG|@DIGEST]

Obtenons l'image httpd que nous avons recherchée plus tôt.

$ docker pull httpd

Si vous ne spécifiez pas TAG, la dernière version sera extraite.

Using default tag: latest
latest: Pulling from library/httpd
852e50cd189d: Pull complete
67d51c33d390: Pull complete
b0ad2a3b9567: Pull complete
136f1f71f30c: Pull complete
01f8ace29294: Pull complete
Digest: sha256:fddc534b7f6bb6197855be559244adb11907d569aae1283db8e6ce8bb8f6f456
Status: Downloaded newer image for httpd:latest
docker.io/library/httpd:latest

Affichage de la liste d'images

$ docker images [OPTIONS] [REPOSITORY]

Jetons un coup d'œil à l'image qui a été tirée plus tôt.

$ docker images

Il sera affiché comme suit.

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
httpd               latest              0a30f4c29d25        4 days ago          138MB

Démarrer le conteneur

$ docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

Commençons httpd plus tôt.

$ docker run -d -p 8080:80 httpd

Les caractères alphanumériques affichés ci-dessous lorsque la commande docker run est exécutée seront l'ID du conteneur, et lorsque vous spécifiez ce conteneur à l'avenir, spécifiez cet ID. Je vais vous expliquer les options. -d: s'exécute en arrière-plan (si vous ne l'activez pas, l'invite sera volée par le conteneur. Si vous vous déconnectez, vous serez renvoyé côté hôte.) -p: Spécifiez le port (cette fois, le port local est 8080 et le port conteneur est 80)

Une autre méthode de démarrage. Lorsqu'il est démarré avec cela, l'invite devient l'invite dans le conteneur.

$ docker run -p 8080:80 --name test01 -it httpd /bin/bash

--name: spécifiez le nom du conteneur -it: Spécifiez le nom de l'image / bin / bash: spécifiez la commande lors de la connexion

Confirmation du processus de conteneur

$ docker ps [OPTIONS]

Pour voir les processus arrêtés, ajoutez l'option -a. Fondamentalement, vous devez taper la commande suivante.

$ docker ps -a

Le résultat de l'exécution est affiché comme suit.

CONTAINER ID        IMAGE               COMMAND              CREATED             STATUS                      PORTS                  NAMES
cf4beeb4be04        httpd               "httpd-foreground"   3 seconds ago       Up 2 seconds                0.0.0.0:8080->80/tcp   pedantic_cohen
168d4374aa73        httpd               "/bin/bash"          7 minutes ago       Exited (0) 4 minutes ago                           test01

La vue est la suivante.

Nom de colonne Explication
CONTAINER ID 12 premiers chiffres de l'ID du conteneur
IMAGE Nom d'image d'origine du conteneur
COMMAND Commande donnée au démarrage(Ce qui a été spécifié à la fin au démarrage)
CREATED Temps écoulé depuis la date de création du conteneur
STATUS État de démarrage / arrêt
PORTS Port de liaison(Côté hôte 8080:Côté conteneur 80)
NAMES Le nom du conteneur(Au démarrage--Ce qui est spécifié par le nom)

Connectez-vous au conteneur en cours d'exécution

$ docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

Essayez de vous connecter au conteneur cf4beeb4be04 ci-dessus.

$ docker exec -it cf4beeb4be04 /bin/bash

Arrêter le conteneur

$ docker stop [OPTIONS] CONTAINER [CONTAINER...]

Arrêtons le conteneur qui a été démarré plus tôt.

$ docker stop 5b43901894115d72415d265488225b957050accffcb27ce16382c97479be1d75

Démarrage d'un conteneur arrêté

$ docker start [OPTIONS] CONTAINER [CONTAINER...]

Commençons le conteneur qui a été arrêté plus tôt.

$ docker start 5b43901894115d72415d265488225b957050accffcb27ce16382c97479be1d75

Supprimer le conteneur

$ docker rm [OPTIONS] CONTAINER [CONTAINER...]

test01 Essayez de supprimer le conteneur.

$ docker rm test01

Essayez à nouveau d'exécuter la commande docker ps.

CONTAINER ID        IMAGE               COMMAND              CREATED             STATUS                      PORTS               NAMES
cf4beeb4be04        httpd               "httpd-foreground"   17 minutes ago      Exited (0) 4 minutes ago                        pedantic_cohen

Vous pouvez voir qu'il a été supprimé.

Supprimer l'image

docker rmi [OPTIONS] IMAGE [IMAGE...]

Supprimons l'image httpd. Spécifiez l'ID de conteneur affiché dans les images du docker.

docker rmi 0a30f4c29d25

S'il est à nouveau supprimé par les images du docker, il est terminé.

finalement

Cette fois, j'ai installé Docker sur Ubuntu 18.04 et j'ai essayé de résumer les commandes de base de niveau "clé" de Docker. À l'avenir, je voudrais résumer ce que j'ai remarqué lors de la construction.

Recommended Posts

Essayez de mettre Docker dans ubuntu sur WSL
Utiliser docker dans un environnement proxy sur ubuntu 20.04.1
Essayez DisplayLink sur Ubuntu 20.04
Essayez d'exécuter ScalarDB sur WSL Ubuntu (Construction de l'environnement)
Docker sur Ubuntu18.04 sur WSL2 et instructions d'installation de VSCode
Essayez d'exécuter ScalarDB sur WSL Ubuntu (exemple de création d'application)
Installez Docker sur Ubuntu Server 20.04
Essayez Docker sur Windows 10 Famille
Oracle Java 8 sur Docker Ubuntu
Installez Java sur WSL Ubuntu 18.04
Installez docker et docker-compose sur ubuntu dans les plus brefs délais
Script de configuration pour l'utilisation de docker dans un environnement proxy sur ubuntu 20.04.1
Essayez Redmine sur le docker Mac
Essayez de mettre CentOS 8 dans Raspberry Pi 3
Installation d'Elmer / Ice (Ubuntu sur WSL)
Utilisation de Docker avec Windows10 Home WSL2
Essayez facilement C # 9 (.NET 5) sur Docker
Jusqu'à ce qu'Ubuntu 20 soit installé et que Docker fonctionne sur Windows 10 Home et WSL2
Ubuntu sur WSL2: impossible de se connecter au démon Docker sous unix
Windows Docker: pression du disque sur le fichier WSL
Installez Vivado dans l'environnement WSL2 + Ubuntu 20.04 LTS
Exécutez NordVPN dans le conteneur Ubuntu Docker (Windows)
Utiliser cljstyle avec Spacemacs sur Ubuntu sur WSL2
Jusqu'à ce que vous exécutiez apache avec ubuntu sur docker
Exécutez Ubuntu + ROS avec Docker sur Mac
Mettez Zabbix dans Ubuntu avec Docker et surveillez Docker sur le même hôte
Docker sur WSL2 ne dit plus oui ou non
Liberty sur Docker
Installez simplement Laravel 8 sur le docker dans l'environnement PHP8
Utiliser Docker Desktop pour Windows avec Linux (WSL)
Redmine sur Docker
Installez Ubuntu 20.04 dans la boîte virtuelle sur Windows10 et créez un environnement de développement à l'aide de docker
Systemctl ne peut pas être utilisé sur Ubuntu dans un conteneur Docker
J'ai construit un environnement Ubuntu sur Windows 10 en utilisant WSL2.
Mémo de commande pour installer xeyes dans l'environnement docker ubuntu
Enregistrement d'écran sur Ubuntu 20.04
Bluetooth Web sur Ubuntu20.04
Installation de Docker sur CentOS 6
Essayez OpenLiteSpeed sur CentOS8
mémo python sur docker
Exploser Docker avec WSL2
Essayez LetCode dans Ruby-TwoSum
Installez Docker sur Manjaro
Installez Ruby sur Ubuntu 20.04
Définition de JAVA_HOME sur Ubuntu