--Construction d'un environnement CentOS Linux 8 avec Docker sur macOS --Démarrez Apache HTTP Server et accédez de l'intérieur et de l'extérieur du conteneur
$ docker --version
Docker version 19.03.8, build afacb8b
Obtenez l'image avec la commande docker pull.
$ docker pull centos:centos8
centos8: Pulling from library/centos
8a29a15cefae: Pull complete
Digest: sha256:fe8d824220415eed5477b63addf40fb06c3b049404242b31982106ac204f6700
Status: Downloaded newer image for centos:centos8
docker.io/library/centos:centos8
Vous pouvez trouver une image de CentOS Linux que vous pouvez installer à partir de centos Tags \ -Docker Hub.
Attribuez le nom foobar au conteneur et exécutez-le en arrière-plan. Ici, le port 80 du conteneur est affecté au port 8080 de l'hôte.
$ docker run --detach --name foobar --privileged --publish=8080:80 centos:centos8 /sbin/init
exécuter - Docker \ -docs \ -ja 17 \ .06 \ .Beta Document
La commande docker run crée d'abord une couche de conteneur inscriptible sur l'image spécifiée. Puis commencez à utiliser la commande spécifiée. Cette exécution de docker est identique à l'exécution de / containers / (id) / start après l'API / containers / create.
Notez que si vous ne spécifiez pas --privileged et / sbin / init dans la commande docker run, vous ne pourrez pas utiliser systemd avec le message d'erreur suivant lors de l'utilisation de systemd.
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
Utilisez la commande docker exec pour exécuter le shell bash dans le conteneur lancé. Vous pouvez maintenant accéder à CentOS Linux 8.
$ docker exec -it foobar bash
Vérifiez la version du système d'exploitation, etc. dans le shell.
[root@29d737551a55 /]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="8 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="CentOS Linux 8 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:8"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-8"
CENTOS_MANTISBT_PROJECT_VERSION="8"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="8"
[root@29d737551a55 /]# uname -a
Linux 29d737551a55 4.19.76-linuxkit #1 SMP Thu Oct 17 19:31:58 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Vous ne disposez pas du logiciel que vous pensez utiliser souvent, comme vim.
[root@29d737551a55 /]# vim
bash: /usr/bin/vim: No such file or directory
Installez vim.
[root@29d737551a55 /]# dnf install vim
[root@29d737551a55 /]# vim --version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Nov 11 2019 19:08:24)
Included patches: 1-1763
Utilisez la commande exit pour quitter le shell.
[root@29d737551a55 /]# exit
exit
Vous pouvez arrêter le conteneur en cours d'exécution avec la commande docker stop.
$ docker stop foobar
Vous pouvez afficher les informations du conteneur avec la commande docker ps.
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
29d737551a55 centos:centos8 "/sbin/init" 46 minutes ago Exited (137) 19 seconds ago foobar
Vous pouvez démarrer un conteneur arrêté avec la commande docker start.
$ docker start foobar
Lancez un shell à l'intérieur du conteneur et connectez-vous.
$ docker exec -it foobar bash
Installez le package httpd avec la commande dnf.
[root@29d737551a55 /]# dnf install httpd
Vous avez maintenant installé Apache HTTP Server. Vérifiez la version.
[root@29d737551a55 /]# httpd -v
Server version: Apache/2.4.37 (centos)
Server built: Dec 23 2019 20:45:34
Configuré pour gérer avec systemd.
[root@29d737551a55 /]# systemctl enable httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
Démarrez Apache HTTP Server avec la commande systemctl start.
[root@29d737551a55 /]# systemctl start httpd
Par défaut, la racine du document est / var / www / html /, créez donc un fichier HTML dans /var/www/html/index.html.
[root@29d737551a55 /]# vi /var/www/html/index.html
Cette fois, j'ai décrit le contenu suivant.
<html>
<body>
Hello, World!
</body>
</html>
Apache HTTP Server génère un fichier HTML lorsqu'il est accédé avec la commande curl.
[root@29d737551a55 /]# curl -i http://localhost/
HTTP/1.1 200 OK
Date: Sat, 21 Mar 2020 06:00:04 GMT
Server: Apache/2.4.37 (centos)
Last-Modified: Sat, 21 Mar 2020 05:59:52 GMT
ETag: "2d-5a1571c48ab9e"
Accept-Ranges: bytes
Content-Length: 45
Content-Type: text/html; charset=UTF-8
<html>
<body>
Hello, World!
</body>
</html>
Cette fois, le port 80 du conteneur est affecté au port 8080 du côté hôte Docker. Si vous accédez au port 8080 du côté hôte depuis l'extérieur du conteneur, vous serez connecté au port 80 du conteneur.
$ curl -i http://localhost:8080/
HTTP/1.1 200 OK
Date: Sat, 21 Mar 2020 06:01:21 GMT
Server: Apache/2.4.37 (centos)
Last-Modified: Sat, 21 Mar 2020 05:59:52 GMT
ETag: "2d-5a1571c48ab9e"
Accept-Ranges: bytes
Content-Length: 45
Content-Type: text/html; charset=UTF-8
<html>
<body>
Hello, World!
</body>
</html>
Recommended Posts