宝塔服务器: docker安装 oracle11g镜像
我是用win本地docker先将 oracle11g镜像下载好 然后导出上传到 宝塔面板上面的详细下令:
下载镜像:大概6.8个G左右
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g 然后导出镜像:
docker save -o D:\www\oracle11g.tar registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g 等导出完成后 再将该文件上传到 宝塔服务器某个路径地点
https://i-blog.csdnimg.cn/direct/2711217d9c904beaa27bc9c1fbc6f423.jpeg
上传成功以后 使用SSH下令 将本地镜像导入到 docker里面
docker load -i /data/docker/oracle11g/oracle_11g_image.tar 面板上面也有导入本地镜像功能,但是我使用的时候导入失败了..
导入成功以后 使用 docker images 下令查看本地镜像列表
https://i-blog.csdnimg.cn/direct/be96841dd967491988205638f1072933.png
下一步 使用下令将容器启动:
docker run \
--privileged \
-d \
--restart=always \
-v /data/oracle:/data/oracle \
-p 1521:1521 \
--name oracle11g \
-e ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2 \
-e ORACLE_SID=helowin \
-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 \
registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
注意: 确保宿主机上面的 /data/oracle 这个目录存在
1. docker run 作用:这是启动一个新的 Docker 容器的命令。
2. --privileged 作用:授予容器几乎所有的主机权限。这允许容器内的进程执行通常需要超级用户权限的操
作,如加载内核模块、更改网络配置等。 注意事项:虽然有时是必要的,但应谨慎使用此选项,因为它
可能会带来安全风险。
3. -d 作用:以分离模式(后台)运行容器。这意味着容器会在后台运行,而不会占用当前终端。
等效选项:--detach
4. --restart=always 作用:设置容器的重启策略为始终重启。无论容器因什么原因停止(包括手动停止),
Docker 都会尝试重新启动它。
其他选项:
no:不自动重启容器。
on-failure:仅在容器退出状态码表示失败时重启。
unless-stopped:总是重启容器,除非容器被手动停止。
5. -v /data/oracle:/data/oracle 作用:将主机上的 /data/oracle 目录挂载到容器内
的 /data/oracle 目录。这样可以实现数据持久化,即使容器停止或删除,数据仍然保留在主机上。
等效选项:--volume
格式:host_path:container_path[:options]
6. -p 1521:1521作用:将主机的 1521 端口映射到容器的 1521 端口。这使得你可以通过主机的 IP 地
址和端口 1521 访问容器内的 Oracle 数据库服务。
等效选项:--publish
格式:host_port:container_port
7. --name oracle11g作用:为容器指定一个名称 oracle11g。这使得你可以通过这个名称而不是容器 ID
来引用容器。
等效选项:无
8. registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g作用:指定要使用的镜像。这里是阿里
云容器镜像服务中的 helowin/oracle_11g 镜像。
格式:repository/image_name:tag(如果省略标签,默认使用 latest)
总结:
这条命令的作用是启动一个名为 oracle11g 的 Docker 容器,使用来自阿里云的 helowin/oracle_11g 镜像
完事儿 下一步 直接进入到 oracle容器里面 这一步很关键, 之前看别的文章是 docker exec -it oracle11g bash这样进入的,会有一些题目 下面直接使用 root来进入 权限大一点
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/bin:$PATH
保存后使设置文件生效:
source /etc/profile
设置权限:
# 进入容器内部
docker exec -it -u root oracle11g bash
# 检查现有用户和组
id oracle
输出-> uid=500(oracle) gid=500(oinstall) groups=500(oinstall),501(dba),502(oper)
oracle 用户的 UID 是 500。
dba 组的 GID 是 501。
# 在主机上执行
chown -R 500:501 /data/oracle
chmod -R 750 /data/oracle
或者,如果您更喜欢使用用户名和组名:
# 在主机上执行
chown -R oracle:dba /data/oracle
chmod -R 750 /data/oracle
确保更改已正确应用:
ls -l /data/oracle
您应该看到类似以下的输出:
total 8
drwxr-x--- 2 oracle dba 4096 Dec 21 09:36 archivelog
drwxr-x--- 3 oracle dba 4096 Dec 23 14:12 data注意:为了以防万一 导致挂载不成功 我是在 宿主机服务器, 以及容器里面 以及容器里面的 su oracle用户上 都设置了一遍 chown -R 500:501 /data/oracle
chmod -R 750 /data/oracle
页:
[1]