宝塔服务器: docker安装 oracle11g镜像

打印 上一主题 下一主题

主题 904|帖子 904|积分 2712

我是用win本地docker先将 oracle11g镜像下载好 然后导出上传到 宝塔面板上面的 
详细下令: 
下载镜像:大概6.8个G左右
  1. docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
复制代码
然后导出镜像: 
  1. docker save -o D:\www\oracle11g.tar registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
复制代码
等导出完成后 再将该文件上传到 宝塔服务器某个路径地点

上传成功以后 使用SSH下令 将本地镜像导入到 docker里面
  1. docker load -i /data/docker/oracle11g/oracle_11g_image.tar
复制代码
面板上面也有导入本地镜像功能,但是我使用的时候导入失败了..  
导入成功以后 使用 docker images 下令查看本地镜像列表


下一步 使用下令将容器启动:
  1. docker run \
  2.   --privileged \
  3.   -d \
  4.   --restart=always \
  5.   -v /data/oracle:/data/oracle \
  6.   -p 1521:1521 \
  7.   --name oracle11g \
  8.   -e ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2 \
  9.   -e ORACLE_SID=helowin \
  10.   -e PATH=/home/oracle/app/oracle/product/11.2.0/dbhome_2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
  11.   registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
  12. 注意: 确保宿主机上面的 /data/oracle      这个目录存在
  13. 1. docker run 作用:这是启动一个新的 Docker 容器的命令。
  14. 2. --privileged 作用:授予容器几乎所有的主机权限。这允许容器内的进程执行通常需要超级用户权限的操        
  15.      作,如加载内核模块、更改网络配置等。 注意事项:虽然有时是必要的,但应谨慎使用此选项,因为它
  16.      可能会带来安全风险。
  17. 3. -d 作用:以分离模式(后台)运行容器。这意味着容器会在后台运行,而不会占用当前终端。
  18.       等效选项:--detach
  19. 4. --restart=always 作用:设置容器的重启策略为始终重启。无论容器因什么原因停止(包括手动停止),
  20.       Docker 都会尝试重新启动它。
  21. 其他选项:
  22.   no:不自动重启容器。
  23.   on-failure:仅在容器退出状态码表示失败时重启。
  24.    unless-stopped:总是重启容器,除非容器被手动停止。
  25. 5. -v /data/oracle:/data/oracle 作用:将主机上的 /data/oracle 目录挂载到容器内
  26.      的 /data/oracle 目录。这样可以实现数据持久化,即使容器停止或删除,数据仍然保留在主机上。
  27.      等效选项:--volume
  28. 格式:host_path:container_path[:options]
  29. 6. -p 1521:1521  作用:将主机的 1521 端口映射到容器的 1521 端口。这使得你可以通过主机的 IP 地
  30.     址和端口 1521 访问容器内的 Oracle 数据库服务。
  31.     等效选项:--publish
  32.     格式:host_port:container_port
  33. 7. --name oracle11g  作用:为容器指定一个名称 oracle11g。这使得你可以通过这个名称而不是容器 ID
  34.     来引用容器。
  35.     等效选项:无
  36. 8. registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g  作用:指定要使用的镜像。这里是阿里
  37.     云容器镜像服务中的 helowin/oracle_11g 镜像。
  38.     格式:repository/image_name:tag(如果省略标签,默认使用 latest)
  39. 总结:
  40. 这条命令的作用是启动一个名为 oracle11g 的 Docker 容器,使用来自阿里云的 helowin/oracle_11g 镜像
复制代码


完事儿 下一步 直接进入到 oracle容器里面   这一步很关键, 之前看别的文章是 docker exec -it oracle11g bash这样进入的,会有一些题目  下面直接使用 root来进入 权限大一点
  1. docker exec -it -u root oracle11g bash
复制代码
 修改环境变量: (不可以省略  也创建了吧)
   vi /etc/profile   
  export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/binPATH
  保存后使设置文件生效:
   source /etc/profile
  设置权限: 
  
  1. # 进入容器内部
  2. docker exec -it -u root oracle11g bash
  3. # 检查现有用户和组
  4. id oracle
  5. 输出-> uid=500(oracle) gid=500(oinstall) groups=500(oinstall),501(dba),502(oper)
  6. oracle 用户的 UID 是 500。
  7. dba 组的 GID 是 501。
  8. # 在主机上执行
  9. chown -R 500:501 /data/oracle
  10. chmod -R 750 /data/oracle
  11. 或者,如果您更喜欢使用用户名和组名:
  12. # 在主机上执行
  13. chown -R oracle:dba /data/oracle
  14. chmod -R 750 /data/oracle
  15. 确保更改已正确应用:
  16. ls -l /data/oracle
  17. 您应该看到类似以下的输出:
  18. total 8
  19. drwxr-x--- 2 oracle dba 4096 Dec 21 09:36 archivelog
  20. drwxr-x--- 3 oracle dba 4096 Dec 23 14:12 data
复制代码
注意:为了以防万一 导致挂载不成功  我是在 宿主机服务器, 以及容器里面 以及容器里面的 su oracle用户上  都设置了一遍 chown -R 500:501 /data/oracle
                                             chmod -R 750 /data/oracle
  
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

郭卫东

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表