


Comment utiliser Docker pour installer le service Web fourni par nginx
1. Extraire l'image
La commande docker pull est utilisée pour extraire l'image de l'application, et la commande docker pull nginx
est utilisée pour extraire la dernière version de l'image nginx. Voici le résultat de la réponse du processus d'extraction d'image : docker pull nginx
命令用于拉取最新版本的nginx镜像。下文为拉取镜像过程的响应结果:
# docker pull nginx Using default tag: latest latest: Pulling from library/nginx c229119241af: Pull complete 2215908dc0a2: Pull complete 08c3cb2073f1: Pull complete 18f38162c0ce: Pull complete 10e2168f148a: Pull complete c4ffe9532b5f: Pull complete Digest: sha256:2275af0f20d71b293916f1958f8497f987b8d8fd8113df54635f2a5915002bf1 Status: Downloaded newer image for nginx:latest docker.io/library/nginx:latest
从上文我们可以看出nginx镜像是从docker.io
这个网址拉取下来的。
使用docker images
命令可以查看当前操作系统中下载了哪些镜像文件。
# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest 12766a6745ee 33 hours ago 142MB hello-world latest feb5d9fea6a5 6 months ago 13.3kB
REPOSITORY镜像仓库及镜像名称,如果不显示镜像仓库,默认就是
docker.io
TAG镜像的版本或者是里程碑标签,latest表示最新版本
IMAGE ID 镜像的唯一标识
CREATED 这个镜像被创建的时间
SIZE表示镜像文件的大小
二、运行镜像启动容器
通过docker run
命令启动一个容器,容器名称为nginx-zimug。
# docker run -d --name nginx-zimug -p 80:80 nginx 81bb1211144bc0991a789f860458548643c60b5459466c14d0604be9a4ccbfd7
-d
表示容器在后台运行--name
为容器起一个名字-p
端口映射,格式为宿主机端口:容器端口
,上文中含义是将容器中的端口80映射到宿主机的端口80,对外提供访问服务。最后一个字段为镜像名称
当浏览器通过HTTP协议访问宿主机的80端口时,可以省略端口号。得到的访问结果如下,说明我们的nginx服务已经启动成功了。
通过docker ps
可以查看正在运行中的容器,如下所示:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 81bb1211144b nginx "/docker-entrypoint.…" 11 minutes ago Up 11 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp nginx-zimug
三、文件映射
首先明确的是容器中的文件内容是可以被修改的,但是一旦容器重启,所有写入到容器中的,针对数据文件、配置文件的修改都将丢失。所以为了保存容器的运行状态,执行结果,我们需要将容器内的一些重要的数据文件、日志文件、配置文件映射到宿主机上。
以nginx为例,nginx有三个重要的文件目录:
容器中路径 | 宿主机中自定义映射路径 | |
---|---|---|
存储网站网页的目录 | /usr/share/nginx/html | /root/nginx/html |
nginx配置文件目录 | /etc/nginx/nginx.conf | /root/nginx/conf/nginx.conf |
日志目录 | /var/log/nginx | /root/nginx/logs |
在宿主机中新建文件目录
mkdir -p /root/nginx/logs /root/nginx/html /root/nginx/conf;
将容器中的文件copy到宿主机中
将nginx配置文件copy到宿主机中
docker cp nginx-zimug:/etc/nginx/nginx.conf /root/nginx/conf;
将一个模拟的html文件放入html目录
将下面的文件保存为index.html放入宿主机的/root/nginx/html
目录,因为存在映射关系,实际上也是放入了容器的/usr/share/nginx/html
目录。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>使用docker搭建nginx web服务</title> </head> <body> <h2 id="访问成功">访问成功</h2> <p>厉害了!</p> </body> </html>
四、再次启动容器服务
-v
参数表达了宿主机文件与容器中文件的映射关系,格式为-v 宿主机目录:容器文件系统目录
。启动一个新的容器,容器的名字叫做nginx-prod
docker run -d -p 80:80 \ --name nginx-prod \ -v /root/nginx/html:/usr/share/nginx/html \ -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /root/nginx/logs:/var/log/nginx nginx
在启动新容器之前,将nginx-zimug旧的容器删掉。如果不删除旧的容器,新容器的端口与旧容器端口会发生冲突。使用如下命令删除容器:
docker stop nginx-zimug; docker rm nginx-zimug;
执行上面的docker run
rrreee
docker.io
. Utilisez la commande
docker images
pour vérifier quels fichiers image sont téléchargés dans le système d'exploitation actuel.
Entrepôt d'images REPOSITORY et nom de l'image Si l'entrepôt d'images n'est pas affiché, la valeur par défaut est
docker.io
TAG La version ou balise de jalon de l'image, last signifie la dernière version
- IMAGE ID L'identifiant unique de l'image🎜
- 🎜CREATED L'heure à laquelle cette image a été créée🎜
- 🎜SIZE représente la taille du fichier image🎜
. commande docker run
et le nom du conteneur est nginx-zimug . 🎜rrreee- 🎜
-d
signifie que le conteneur s'exécute en arrière-plan🎜 - 🎜
--name
Donnez un nom au conteneur🎜 - 🎜
-p
Mappage du port, le format estport hôte : port du conteneur
, la signification ci-dessus est placer le conteneur dans le port 80 est mappé au port 80 de l'hôte pour fournir des services d'accès externes. Le dernier champ est le nom de l'image🎜

docker ps
peut afficher le conteneur en cours d'exécution, comme indiqué ci-dessous : 🎜rrreee🎜3 Mappage de fichiers🎜🎜Tout d'abord, il est clair que le contenu du fichier dans le conteneur peut être modifié, maisune fois le conteneur après le redémarrage, toutes les modifications apportées aux fichiers de données et aux fichiers de configuration écrits dans le conteneur seront perdues. Par conséquent, afin de sauvegarder l'état d'exécution et les résultats d'exécution du conteneur, nous devons mapper certains fichiers de données, fichiers journaux et fichiers de configuration importants du conteneur à l'hôte. Prenons nginx comme exemple. nginx a trois répertoires de fichiers importants : 🎜
Chemin dans le conteneur | Chemin de mappage personnalisé dans la machine hôte||
---|---|---|
Répertoire de stockage des pages du site Web | /usr/share/nginx/ html | /root/nginx/html |
répertoire des fichiers de configuration nginx | /etc/nginx/nginx.conf | /root/nginx/conf/nginx.conf |
Répertoire des journaux | /var/log/nginx | / root/nginx/logs |
Copiez le fichier de configuration nginx sur la machine hôte🎜rrreee🎜Placez un fichier HTML simulé dans le répertoire html
Enregistrez le fichier suivant en tant qu'index .html est placé dans le répertoire
/root/nginx/html
de l'hôte. En raison de la relation de mappage, il est en fait placé dans le répertoire /usr/share/nginx/ du conteneur. html
Table des matières. 🎜rrreee🎜4. Redémarrez le service de conteneur🎜🎜Le paramètre -v
exprime la relation de mappage entre les fichiers hôtes et les fichiers du conteneur. Le format est -v répertoire hôte : système de fichiers du conteneur. répertoire. Démarrez un nouveau conteneur. Le nom du conteneur est nginx-prod🎜rrreee🎜 Avant de démarrer le nouveau conteneur, supprimez l'ancien conteneur nginx-zimug. Si l'ancien conteneur n'est pas supprimé, le port du nouveau conteneur entrera en conflit avec le port de l'ancien conteneur. Utilisez la commande suivante pour supprimer le conteneur : 🎜rrreee🎜Exécutez la commande <code>docker run
ci-dessus pour démarrer un nouveau conteneur. Après le démarrage, accédez au port 80 de l'hôte via le navigateur. Le résultat de la réponse est le suivant, ce qui prouve que nginx fournit normalement les services Web. 🎜🎜🎜🎜🎜En même temps, vous pouvez modifier la configuration nginx sur la machine hôte et afficher le fichier journal d'exécution. La modification du fichier de configuration affectera le service nginx exécuté dans le conteneur car il existe une relation de mappage entre l'hôte et le fichier de configuration dans le conteneur. 🎜🎜🎜🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds





Les étapes pour mettre à jour une image Docker sont les suivantes: Tirez la dernière étiquette d'image Nouvelle image Supprimer l'ancienne image pour une balise spécifique (facultative) Redémarrez le conteneur (si nécessaire)

Quatre façons de quitter Docker Container: Utilisez Ctrl D dans le terminal de conteneur Entrez la commande d'exit dans le terminal de conteneur Utilisez Docker Stop & lt; contener_name & gt; Commande utilise docker kill & lt; contener_name & gt; commande dans le terminal hôte (sortie de force)

Méthodes de copie de fichiers en hôtes externes dans Docker: Utilisez la commande docker cp: exécuter docker cp [options] & lt; Container Path & gt; & lt; Host Path & gt;. Utilisation de volumes de données: créez un répertoire sur l'hôte et utilisez le paramètre -v pour monter le répertoire dans le conteneur lors de la création du conteneur pour obtenir la synchronisation de fichiers bidirectionnels.

Comment redémarrer le conteneur Docker: Obtenez l'ID de conteneur (Docker PS); Arrêtez le conteneur (docker stop & lt; contener_id & gt;); Démarrer le conteneur (docker start & lt; contener_id & gt;); Vérifiez que le redémarrage réussit (Docker PS). Autres méthodes: Docker Compose (redémarrage Docker-Compose) ou API Docker (voir Docker Documentation).

Vous pouvez interroger le nom du conteneur Docker en suivant les étapes: répertorier tous les conteneurs (Docker PS). Filtrez la liste des conteneurs (à l'aide de la commande grep). Obtient le nom du conteneur (situé dans la colonne "Noms").

Méthode de visualisation du processus docker: 1. Commande Docker CLI: Docker PS; 2. Commande CLI Systemd: Docker d'état SystemCTL; 3. Docker Compose CLI Commande: Docker-Compose PS; 4. Process Explorer (Windows); 5. / Répertoire proc (Linux).

Comment utiliser Docker Desktop? Docker Desktop est un outil pour exécuter des conteneurs Docker sur les machines locales. Les étapes à utiliser incluent: 1. Installer Docker Desktop; 2. Démarrer Docker Desktop; 3. Créer une image Docker (à l'aide de DockerFile); 4. Build Docker Image (en utilisant Docker Build); 5. Exécuter Docker Container (à l'aide de Docker Run).

Le processus de démarrage de MySQL dans Docker se compose des étapes suivantes: Tirez l'image MySQL pour créer et démarrer le conteneur, définir le mot de passe de l'utilisateur racine et mapper la connexion de vérification du port Créez la base de données et l'utilisateur accorde toutes les autorisations sur la base de données
