Maison Java javaDidacticiel Comment utiliser Docker pour créer un environnement Java

Comment utiliser Docker pour créer un environnement Java

May 11, 2023 pm 01:22 PM
java docker

Que fait Docker ?

Docker est un moteur de conteneur avancé basé sur un conteneur Linux (conteneur lxc-linux). Le code source est hébergé sur github et est open source conformément à. le protocole apache2.0. L'objectif de Docker est d'implémenter une solution légère de virtualisation du système d'exploitation.

Pour apprendre Docker, vous devez d'abord comprendre quelques concepts :

Image : l'image de Docker est similaire à une image ISO système courante et contient des informations sur l'application.

Conteneur : un conteneur est équivalent à une machine virtuelle qui peut être run. L'application s'exécute dans le conteneur et Docker s'exécute sur "docker" ;

Entrepôt - L'entrepôt est un endroit où les images sont stockées. Il a un contrôle de version similaire à git et est également divisé en deux formes : entrepôt public (. public) et entrepôt privé (privé) ;

Docker prend en charge la plupart des distributions Linux. En utilisant des conteneurs Docker, vous pouvez exécuter vos propres applications sur différents systèmes d'exploitation et différentes machines. Vous n'avez pas à vous soucier de la configuration du matériel, du fonctionnement. l'environnement, etc., et la migration des applications doit être très simple.

Comparaison entre Docker et la technologie de virtualisation traditionnelle

Par rapport à la technologie de machine virtuelle traditionnelle, Docker consomme moins de ressources et démarre plus rapidement, ce qui facilite grandement le déploiement, l'exploitation et la maintenance du projet.

Docker implémente la virtualisation au niveau du système d'exploitation et réutilise le système d'exploitation de l'hôte local. La méthode traditionnelle consiste à virtualiser plusieurs systèmes d'exploitation en fonction du matériel, puis à déployer les applications associées sur le système.

Cette image illustre de manière frappante la différence entre les technologies de virtualisation traditionnelles telles que docker et vm :

Comment utiliser Docker pour créer un environnement Java vsComment utiliser Docker pour créer un environnement Java

Préparation

Vous devez d'abord préparer un système d'exploitation centos, une machine virtuelle est également disponible. Les exigences de configuration spécifiques sont les suivantes :

1. Il doit s'agir d'un système d'exploitation 64 bits
2 Il est recommandé que le noyau soit supérieur à 3.8

Installer Docker

Il vous suffit d'installer le logiciel Docker. via la commande suivante

yum -y install docker-io

Vous pouvez utiliser la commande suivante pour vérifier si Docker est installé avec succès :

docker version

Si la sortie affiche le numéro de version de Docker, cela signifie que l'installation est réussie. Vous pouvez démarrer le service Docker via le. commande suivante :

service docker start

Si la commande de service ne peut pas être démarrée, utilisez la commande suivante

systemctl start docker.service

Tout comme pour installer un logiciel, nous devons d'abord avoir un CD avec le logiciel gravé dessus si vous utilisez un. lecteur optique virtuel, vous devez préparer le fichier image et l’utiliser pour installer le logiciel. Dans le monde de Docker, il existe également des fichiers image. Le système d'exploitation dont nous avons besoin a été installé. Nous l'appelons généralement docker image

Téléchargez l'image

docker search <image>

Utilisez docker pull imagename (nom du miroir) pour télécharger l'image

Téléchargez. terminé Utilisez ensuite la commande suivante pour afficher toutes les images locales :

docker images

Une fois le téléchargement terminé, vous devriez voir :

repository        tag         image id      created       virtual size
docker.io/centos   centos7       f753707788c5    12 days ago     127.1 mb

Si vous voyez le résultat ci-dessus, cela signifie que vous pouvez utiliser l'image "docker.cn/docker/ centos", ou appelez-le un référentiel, l'image a une balise nommée "centos7", et il y a aussi un identifiant d'image nommé "25c5298b1a36" (ceci est généré aléatoirement, donc tout le monde voit qu'ils sont tous différents)

Démarrez le conteneur

Les conteneurs fonctionnent sur la base d'images. Une fois le conteneur démarré, nous pouvons nous connecter au conteneur et installer les logiciels ou les applications dont nous avons besoin.

Utilisez pour accéder au docker déjà en cours d'exécution

docker attach dabfb413d8cf[容器id]

Utilisez la commande suivante pour démarrer le conteneur :

docker run -i -t -v /root/software/:/mnt/software/ --privileged=true 2a392a47afc5

docker run

Les paramètres pertinents incluent :

-i : Indique l'exécution du conteneur en mode interactif

-t : Indique que le conteneur entrera sa ligne de commande après le démarrage

-v : Indique quel répertoire local doit être monté dans le conteneur, au format -v :

Supposons que tous nos programmes d'installation sont placés dans le répertoire /root/software/ de l'hôte et qu'ils doivent maintenant être montés dans le répertoire /mnt/software/ du conteneur.

Une fois tout cela fait, vous pouvez installer le logiciel pour ce conteneur.

commande de transfert de fichiers docker

docker cp more.log e7de404c00bd:/tmp/ 

1f8787b81bcd

Installer l'environnement de développement Java

Nous devons installer jdk1.7, tomcat7, nginx, téléchargez simplement le package d'installation depuis le site officiel

1 Installez jdk

Tout d'abord, décompressez. Package jdk :

tar -zxf jdk-7u71-linux-x64.tar.gz –c

S'il s'agit d'un package rpm

rpm –ivh jdk-7u71-linux-x64.tar.gz

Puis renommez le dossier

mv jdk1.7.0_71/ jdk/

Enfin configurez les variables d'environnement

vi ~/.bashrc

Ajoutez la configuration suivante à la fin du fichier :

export java_home=/opt/jdk

export path=$path:$java_home

·Ouvrez /etc/profile avec un éditeur de texte

·Ajoutez à la fin du fichier de profil :

export java_home=/usr/share/jdk1.6.0_14 
 export path=$java_home/bin:$path 
 export classpath=.:$java_home/lib/dt.jar:$java_home/lib/tools.jar

Enfin, utilisez la commande source pour que les variables d'environnement prennent effet :

source ~/.bashrc

source /etc/profile

1. Installez tomcat

La même chose est vraie, décompressez le fichier. Package Tomcat :

tar –zxf apache-tomcat-7.0.55.tar.gz

Ensuite, renommez le répertoire Tomcat :

mv apache-tomcat-7.0.55/ tomcat/

Écrivez un script en cours d'exécution Lors du démarrage du conteneur, exécutez le script pour démarrer Tomcat. Le processus spécifique est le suivant :

vi /root/run.sh

Ensuite, modifiez le contenu du script comme suit. :

#!/bin/bash

source ~/.bashrc

sh /opt/tomcat/bin/catalina.sh run

注意:这里必须先加载环境,然后使用tomcat的运行脚本来运行tomcat

最后,为运行脚本添加执行权限:

chmod u+x /root/run.sh

1.安装nginx

先去官网下载源码包注意要是gz的

下载地址

下载完后,解压安装包:

tar -zxvf nginx-1.11.5.tar.gz

然后再配置安装变量,打开解压后的目录-执行命令

cd nginx-1.11.5

配置安装环境

./configure --prefix=/usr/local/servers/nginx “/usr/local/servers/nginx”是安装路径

有可能会出现./configure: error: c compiler cc is not found

这时需要运行命令更新一下gcc

yum install gcc gcc-c++ ncurses-devel perl

yum -y install pcre-devel

yum -y install zlib-devel

yum -y install autoconf libtool make

在解压目录执行:

make

切换到root用户执行安装命令

make install

创建软链

ln –s /usr/local/servers/nginx/sbin/nginx /usr/local/bin/nginx

启动nginx服务

nginx

再用 ps -ef|grep nginx查看是否启动成功

提交docker镜像

首先退出你刚才配置好的docker镜像

exit

然后使用以下命令可以看到刚才退出的docker镜像

docker ps –a

再使用以下命令,根据某个”容器id”来创建一个新的”镜像”:

docker commit 57c312bbaad1 javaweb:0.1

该容器id是”57c312bbaad1”,所创建的镜像名是”javaweb”

注意:”57c312bbaad1” 这个id是使用 docker ps 命令来查看的

提交了新的镜像你可以把这个镜像储存tar包

docker  –o ~/javaweb.tar javaweb

docker save –o 保存的目录 镜像名

启动容器

先用 docker images看看当前所有的镜像

启动最新创建的镜像

docker run -d -p 80:80 --name javaweb javaweb:0.1 /root/run.sh

-d:表示以”守护模式”执行/root/run.sh脚本,此时tomcat控制台不会出现在输出终端上。

-p:表示宿主机与容器的端口映射,此时将容器内部的80端口映射为宿主机的 80端口,这样就向外界暴露了80端口,可通过docker网桥来访问容器内部的80端口了

--name:表示容器名称,用一个有意义的名称命名即可

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

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 !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Sujets chauds

Tutoriel PHP
1525
276
Correction: Ethernet 'réseau non identifié' Correction: Ethernet 'réseau non identifié' Aug 12, 2025 pm 01:53 PM

RestartyourRouterAndComputerToresolvetemporaryGlithes.2.RunthenetWorkTrouleshooTerviATheSystemTraytomAticalMatterFixComMonissues.3.RenewtheipAddressusingcomandPomptSADMinistratorByrunningIpConfig / Release, Ipconfig / Renew, NetShwinsockReset, etnetSh

Comment utiliser l'API HTTPClient en Java Comment utiliser l'API HTTPClient en Java Aug 12, 2025 pm 02:27 PM

Le cœur de l'utilisation du javahttpclientapi est de créer un httpclient, de créer un httprequest et de traiter httpResponse. 1. Utilisez httpclient.newhttpclient () ou httpclient.newbuilder () pour configurer les délais d'expiration, proxy, etc. pour créer des clients; 2. Utilisez httpRequest.newBuilder () pour définir URI, méthode, en-tête et corps pour construire des demandes; 3. Envoyez des demandes synchrones via client.send () ou envoyez des demandes asynchrones via client.sendaSync (); 4. Utilisez des handleurs.

Excel trouver et remplacer ne fonctionne pas Excel trouver et remplacer ne fonctionne pas Aug 13, 2025 pm 04:49 PM

CheckkSearchSettings like "MatchEnteRireCellContents" et "MatchCase" ByExpandingOptionsInFindanDreplace, garantissant "lookin" issettominuesand »dans" TOCORRECTSCOPE; 2.LOORHFORHIDDENCHARACTER

The Best Ides for Java Development: une revue comparative The Best Ides for Java Development: une revue comparative Aug 12, 2025 pm 02:55 PM

Thebestjavaidein2024Denpendyourndeds: 1.chooseintellijideaforprofessional, l'entreprise, le development orfulldevelopmentduetoitsSuperiorCodeIntelligence, le framewory

Edge ne sauvant pas l'histoire Edge ne sauvant pas l'histoire Aug 12, 2025 pm 05:20 PM

Tout d'abord, Checkif "ClearbrowsingDataOnClose" IsTurneDOninsettingsandTurnitofftoenSureHistoryissaved.2.Confirmyou'renotusingInprivateMode, asitdoesNotsAvehistoryByDesigr.3.Disable ExtensionStendatoryToUleoutHeleft

Comment déployer une application Java Comment déployer une application Java Aug 17, 2025 am 12:56 AM

Préparez-vous en application par rapport à Mavenorgradletobuildajarorwarfile, externalisationConfiguration.2.ChoOSEADPLOYENDIRONMENT: Runonbaremetal / vmwithjava-jarandsystemd, deploywarontomcat, compeneriserisewithdocker, orusecloudplatformslikelise.

Comment configurer la journalisation dans une application Java? Comment configurer la journalisation dans une application Java? Aug 15, 2025 am 11:50 AM

L'utilisation de SLF4J combinée avec la journalisation ou le log4j2 est le moyen recommandé de configurer les journaux dans les applications Java. Il introduit des bibliothèques API et implémentation en ajoutant des dépendances Maven correspondantes; 2. Obtenez l'enregistreur via le loggerfactory de SLF4J dans le code et écrivez le code journal découplé et efficace à l'aide de méthodes de journalisation paramétrée; 3. Définir le format de sortie du journal, le niveau, la cible (console, le fichier) et le contrôle du journal du package via Logback.xml ou les fichiers de configuration log4j2.xml; 4. Activer éventuellement la fonction de balayage de fichiers de configuration pour atteindre un ajustement dynamique du niveau de journal, et Springboot peut également être géré via des points de terminaison de l'actionneur; 5. Suivez les meilleures pratiques, y compris

Liaison des données XML avec Castor en Java Liaison des données XML avec Castor en Java Aug 15, 2025 am 03:43 AM

CASTORENablesxml-to-javaObjectMappingViadefaultConverionsOrexplicitMappingFiles; 1) DefinejavaclasseswithGetters / seters; 2) useUnmarShallertOConvertXmltoObjects; 3)

See all articles