Maison > Article > Opération et maintenance > Docker peut-il installer Oracle ?
docker peut installer Oracle. Méthode d'installation : 1. Extrayez l'image Oracle officielle et utilisez « docker images » pour afficher l'image ; 2. Après avoir démarré le conteneur, utilisez « docker exec -it oracle11g bash » pour entrer dans le conteneur et modifier les variables d'environnement ; "sqlplus /nolog" Entrez simplement la ligne de commande Oracle.
L'environnement d'exploitation de ce tutoriel : système linux7.3, docker version 19.03, ordinateur Dell G3.
Vous pouvez utiliser Docker pour déployer Oracle, et cela présente de nombreux avantages. Cela peut non seulement réduire le temps d’installation, mais également permettre un déploiement rapide.
Les avantages de l'utilisation de docker pour le déploiement sont les suivants :
(1) Simplifiez la configuration une fois construit et emballé, il peut être utilisé comme environnement de test, environnement de production ou environnement de pré-production, ce qui peut économiser. beaucoup de liens de test. Par exemple, un serveur peut tester plusieurs versions sans attendre.
(2) peut résoudre la difficulté des développeurs à déployer l'environnement. Par exemple, cela peut prendre une demi-journée à un nouveau collègue qui vient d'arriver pour installer l'environnement, mais il est beaucoup plus pratique d'exécuter directement un conteneur déjà configuré. .
(3) Isolation des applications et intégration du serveur. Un serveur peut utiliser Docker pour déployer plusieurs ensembles de services, et l'isolation est très élevée (sauf pour les machines virtuelles).
(4) Pour le développement, après le déploiement, il peut être exécuté partout pour faciliter le développement et le débogage.
(5) Cela peut réduire l'utilisation des ressources. Par rapport aux machines virtuelles, cela permet d'économiser beaucoup de ressources inutiles. La perte d'isolement est plus que compensée par d'autres avantages.
(6) Pour l'exploitation et la maintenance, il peut rapidement augmenter la capacité et réduire le taux d'utilisation d'origine
(7) Chaque petit service peut être regroupé. Docker utilise relativement peu de ressources et peut être démarré sur un seul serveur. plus d'E/S sur le serveur que les autres produits.
(8) Peut être déployé sur plusieurs plates-formes
Les exemples sont les suivants :
L'installation d'Oracle sous Linux est très gênante et je pense que tout le monde sera confronté à divers pièges. Afin de l'installer une fois, il est également pratique d'exporter directement l'image pour la transplanter et l'utiliser sur diverses plates-formes à l'avenir, j'ai donc choisi de l'installer avec docker
Recherchez Oracle sur DockerHub pour trouver Oracle. image officielle, adresse : https://hub.docker.com/
Notez que si vous utilisez la commande docker pull oraclelinux
ici, vous ne pouvez pas extraire l'image car elle n'a pas la dernière version. étiqueter. Par conséquent, son numéro de version ne peut être spécifié que manuellement docker pull oraclelinux
命令,是拉取不到镜像的,因为它没有 latest 标签。因此,只能手动指定它的版本号
例如 docker pull oraclelinux
使用 官方镜像 下载速度非常慢,因此,我们可以使用阿里镜像 docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
在 dockerHub 上可以搜到 (第二个),可以参考这个配置
使用 docker images
查看镜像,确认已经下载完成
docker run -d -it -p 1521:1521 --name oracle11g --restart=always registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
docker run -d -it -p 1521:1521 --name oracle --restart=always --mount source=oracle_vol,target=/home/oracle/app/oracle/oradata registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
查看启动的线程 netstat -tulnp
查看运行状态 docker ps -a
Par exemple, docker pull oraclelinux
L'utilisation de l'image officielle pour télécharger est très lente, nous pouvons donc utiliser l'image Ali docker pull Registry.cn-hangzhou.aliyuncs.com/helowin /oracle_11g
images Docker
pour afficher l'image et confirmer que le téléchargement est terminé🎜🎜🎜Démarrer le conteneur🎜docker run -d - it -p 1521:1521 --name oracle11g --restart=always Registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
docker run - d -it -p 1521:1521 --name oracle --restart=always --mount source=oracle_vol,target=/home/oracle/app/oracle/oradata Registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
netstat -tulnp
🎜🎜 Vérifiez l'état d'exécutiondocker ps -a
🎜🎜🎜Entrez le conteneur docker exec -it oracle11g bash
docker exec -it oracle11g bash
切换到 root 用户 su root
,密码为 helowin
docker容器配置环境变量不是在 /etc/profile
中,容器启动不会走这个文件。
可以将环境变量的配置设置在 /home/oracle/.bashrc
文件下,这样可以省略掉软连接的创建 ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
编辑环境变量 vi /home/oracle/.bashrc
,在文件最后加入以下命令
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2 export ORACLE_SID=helowin export PATH=$ORACLE_HOME/bin:$PATH
wq
保存并退出。然后使用 source /home/oracle/.bashrc
刷新环境变量,并使之生效
使用 sqlplus /nolog
进入oracle命令行
使用 “操作系统认证” 的方式,登录oracle conn / as sysdba
如果直接使用默认的 root 用户登录,会报登录失败。这里必须使用 su - oracle
命令,将当前用户切换到 oracle,然后在执行登录命令
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
这个错误是由于数据库名用错了
su - oracle sqlplus /nolog conn / as sysdba select instance_name from v$instance; show user;
使用上述命令查出来的,就是所有可用的 “数据库名” 和 “用户名”
阿里的这个镜像,所有的密码都是统一的 helowin
su root
, le mot de passe est helowin
La variable d'environnement de configuration du conteneur Docker n'est pas dans /etc/profile code>, ce fichier ne sera pas pris au démarrage du conteneur.
/home/oracle/.bashrc
, qui peut omettre la création de liens symboliques ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
Modification de la variable d'environnement vi /home/oracle/.bashrc
, ajoutez la commande suivante à la fin du fichier
# 打开防火墙 systemctl start firewalld # 查询端口状态 firewall-cmd --query-port=1521/tcp # 永久性开放端口 firewall-cmd --permanent --zone=public --add-port=1521/tcp # 重启防火墙 firewall-cmd --reload firewall-cmd --query-port=1521/tcp
wq
Enregistrez et quittez. Utilisez ensuite source /home/oracle/.bashrc
pour actualiser les variables d'environnement et les rendre efficacesEntrez la ligne de commande oracle
Utilisez sqlplus /nolog
pour entrer dans l'oracle ligne de commande
conn / as sysdba
Si vous vous connectez directement en utilisant l'utilisateur root par défaut, un échec de connexion sera signalé. Ici, vous devez utiliser la commande su - oracle
pour basculer l'utilisateur actuel vers oracle, puis exécuter la commande de connexion
helowin
🎜🎜L'utilisateur du système a l'autorité DBA, mais n'a pas l'autorité SYSDBA. Ce compte est généralement utilisé pour gérer la base de données. 🎜 L'utilisateur sys est le compte ayant la plus haute autorité dans la base de données Oracle, avec les autorisations "SYSDBA" et "SYSOPER", et n'est généralement pas autorisé à se connecter de l'extérieur 🎜🎜🎜🎜🎜Configurer le pare-feu 🎜🎜Le pare-feu doit autorisez le port 1521 et les outils de gestion de bases de données externes peuvent être connectés 🎜rrreee🎜🎜🎜🎜 Apprentissage recommandé : "🎜tutoriel vidéo docker🎜"🎜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!