Maison >Opération et maintenance >Docker >Docker peut-il installer Oracle ?

Docker peut-il installer Oracle ?

WBOY
WBOYoriginal
2022-07-08 16:07:4211647parcourir

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.

Docker peut-il installer Oracle ?

L'environnement d'exploitation de ce tutoriel : système linux7.3, docker version 19.03, ordinateur Dell G3.

Docker peut-il installer Oracle ?

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

Tirez l'image

Recherchez Oracle sur DockerHub pour trouver Oracle. image officielle, adresse : https://hub.docker.com/
Docker peut-il installer Oracle ?

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 peut-il installer Oracle ?
使用 官方镜像 下载速度非常慢,因此,我们可以使用阿里镜像 docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

在 dockerHub 上可以搜到 (第二个),可以参考这个配置
Docker peut-il installer Oracle ?Docker peut-il installer Oracle ?使用 docker images 查看镜像,确认已经下载完成
Docker peut-il installer Oracle ?

启动容器

  1. 默认启动容器的方式
    docker run -d -it -p 1521:1521 --name oracle11g --restart=always registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
  2. 持久化启动的方式
    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 peut-il installer Oracle ?
查看运行状态 docker ps -a Par exemple, docker pull oraclelinux
Insérer la description de l'image iciDocker peut-il installer Oracle ? 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

🎜Peut être trouvé sur dockerHub (le deuxième), vous pouvez vous référer à cette configuration🎜Insérer la description de l'image iciIci, insérez la description de l'imageUtilisez les images Docker pour afficher l'image et confirmer que le téléchargement est terminé🎜Insérer la description de l'image ici🎜🎜Démarrer le conteneur🎜
  1. La manière par défaut de démarrer le conteneur🎜docker run -d - it -p 1521:1521 --name oracle11g --restart=always Registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
  2. Comment démarrer la persistance🎜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
  3. 🎜Afficher les discussions démarréesnetstat -tulnp🎜Insérer la description de l'image ici🎜 Vérifiez l'état d'exécutiondocker ps -a🎜🎜🎜

    Configuration de l'environnement du conteneur

    Entrez le conteneur docker exec -it oracle11g bashdocker exec -it oracle11g bash
    Docker peut-il installer Oracle ?
    切换到 root 用户 su root,密码为 helowin
    Docker peut-il installer Oracle ?
    docker容器配置环境变量不是在 /etc/profile 中,容器启动不会走这个文件。
    可以将环境变量的配置设置在 /home/oracle/.bashrc 文件下,这样可以省略掉软连接的创建 ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
    Docker peut-il installer Oracle ?
    编辑环境变量 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 刷新环境变量,并使之生效

    进入 oracle 命令行

    使用 sqlplus /nolog 进入oracle命令行
    Docker peut-il installer Oracle ?
    使用 “操作系统认证” 的方式,登录oracle conn / as sysdba
    如果直接使用默认的 root 用户登录,会报登录失败。这里必须使用 su - oracle 命令,将当前用户切换到 oracle,然后在执行登录命令
    Docker peut-il installer Oracle ?

    ORA-12514, TNS:listener does not currently know of service requested in connect descriptor

    Docker peut-il installer Oracle ?这个错误是由于数据库名用错了

    su - oracle
    sqlplus /nolog
    conn / as sysdba
    select instance_name from v$instance;
    show user;

    使用上述命令查出来的,就是所有可用的 “数据库名” 和 “用户名”
    Docker peut-il installer Oracle ?

    阿里的这个镜像,所有的密码都是统一的 helowinInsérer la description de l'image ici

    Basculez vers l'utilisateur root su root, le mot de passe est helowin

    Insérer la description de l'image ici
    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.

    Vous pouvez définir la configuration des variables d'environnement sous le fichier /home/oracle/.bashrc, qui peut omettre la création de liens symboliques ln -s $ORACLE_HOME/bin/sqlplus /usr/bin

    Insérer la description de l'image iciDocker peut-il installer Oracle ? 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 efficaces

    Entrez la ligne de commande oracle

    Utilisez sqlplus /nolog pour entrer dans l'oracle ligne de commandeDocker peut-il installer Oracle ?

    Utilisez le "système d'exploitation méthode d'authentification", connectez-vous à oracle 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 connexionInsérer la description de l'image ici

    ORA-12514, TNS : l'auditeur ne connaît pas actuellement le service demandé dans le descripteur de connexion🎜🎜 Insérer la description de l'image iciCette erreur est due à un nom de base de données incorrect 🎜 rrreee🎜Utilisez la commande ci-dessus pour connaître tous les "noms de base de données" et "noms d'utilisateur" disponibles🎜Insérer la description de l'image ici🎜🎜Dans cette image d'Ali, tous les mots de passe sont unifiés 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!

Déclaration:
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