linux安装docker和oracle11G

一、安装步骤

1.Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker ,通过 uname -r 命令查看你当前的内核版本:

$  uname -r

 

  3.10以上

2.使用 root 权限登录 Centos。确保 yum 包更新到最新。

$  sudo yum update

3.卸载旧版本(如果安装过旧版本的话)

$  sudo yum remove docker  docker-common docker-selinux docker-engine

4.安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

$  sudo yum install -y yum-utils device-mapper-persistent-data lvm2

5.设置yum源

使用以下命令来设置稳定的仓库。

使用官方源地址

$ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

linux安装docker和oracle11G_第1张图片 

可以选择国内的一些源地址:

阿里云阿里云服务器才选择

$ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker- ce/linux/centos/docker-ce.repo

6.可以查看所有仓库中所有docker版本,并选择特定版本安装

$  sudo yum list docker-ce --showduplicates | sort -r

7.安装docker

$ sudo yum install docker-ce  #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0

$ sudo yum install  # 例如:sudo yum install docker-ce-3:20.10.5

linux安装docker和oracle11G_第2张图片 

均不成功的话使用(yum install -y docker-ce docker-ce-cli  containerd.io --nobest)

8.启动并加入开机启动

$ sudo systemctl start docker

$ sudo systemctl enable docker

 

9.验证安装是否成功(有client和service两部分表示docker安装启动都成功了)

$ docker version

linux安装docker和oracle11G_第3张图片 

  1. 查看状态

service docker status

二、可能存在的问题

1.因为之前已经安装过旧版本的docker,在安装的时候报错如下:

Transaction check error:

  file /usr/bin/docker from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64

  file /usr/bin/docker-containerd from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64

  file /usr/bin/docker-containerd-shim from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64

  file /usr/bin/dockerd from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64

2.卸载旧版本的包

$ sudo yum erase docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64

linux安装docker和oracle11G_第4张图片

 

3.再次安装docker

$ sudo yum install docker-ce

  • docker安装oracle版本

安装前:注意各个磁盘空间大小,docker默认安装目录是/var/lib/docker

1. 查询docker中的oralce镜像

[root@iZ2zecel2bg23hxk44792sZ /]# docker search oracle

linux安装docker和oracle11G_第5张图片

 

  1.  拉取镜像

[root@iZ2zecel2bg23hxk44792sZ ~]# docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

 

3. 查看镜像

docker images

 

4 创建容器

二、创建容器初步了解如何使用镜像

1、创建容器

# (方式) docker run -d -p 1521:1521 -v /home/oracle/data:/u01/app/oracle --name oracle11g  --restart=always  registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

说明

-v(映射主机目录到容器内,把opt目录映射到容器根目录data下)

--name(容器名)

--restart=always(设置容器开机自启动)

-d(创建容器之后不自动进入容器)

oracle11g

 

5 进入容器

# docker exec -it oracle11g bash

 

6 切换到 oracle 用户下

$  su - root

容器内部 root密码 helowin

编辑profile文件配置ORACLE环境变量

[root@7b305671b3b8 ~]# 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

[root@7b305671b3b8 ~]# source /etc/profile

7、创建软连接

 [root@7b305671b3b8 ~]#    ln -s $ORACLE_HOME/bin/sqlplus /usr/bin

su - oracle

sqlplus / as sysdba

8、修改sys、system密码

SQL> alter user system identified by system;

SQL> alter user sys identified by sys;

linux安装docker和oracle11G_第6张图片 

修改oracle默认用户密码永不过期

SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

SQL> exit

exit  是退休sql 软连接

linux安装docker和oracle11G_第7张图片 

9、查看监听是否成功启动

$ lsnrctl status

linux安装docker和oracle11G_第8张图片 

10、查看监听配置文件

注意:oracle监听文件不要随意更改,如若更改需要先备份一份

$ cat /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/tnsnames.ora 

# tnsnames.ora Network Configuration File: /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/tnsnames.ora

# Generated by Oracle configuration tools.

LISTENER_HELOWIN =

  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

HELOWIN =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = helowin)

    )

  )

SQL> select name from v$tempfile;    ## 查询临时表空间的路径

## 下面这句,创建表空间,名:tets ,数据文件路径复制临时表空间数据文件路径然后改一下文件名就行了,大小:1G, 自动增长:50M 。 参数根据自己的需求自行修改

linux安装docker和oracle11G_第9张图片

 

SQL> create tablespace test datafile '/home/oracle/app/oracle/oradata/helowin/hgzhwl.dbf' size 1G reuse autoextend on next 50M maxsize unlimited default storage(initial 128k next 128k minextents 2 maxextents unlimited);

SQL> select tablespace_name from dba_tablespaces    ## 查看所有表空间,看看是否有刚才创建的

SQL> create user test01 identified by testpasswd default tablespace TEST temporary tablespace TEMP;    ## 创建用户,test01,密码:testpass,设置默认表空间为刚才创建的 test, 临时表空间设为默认的 TEMP。

SQL> select username from dba_users    ## 查看用户名,可以看到是否有刚才我们创建的用户名

SQL> grant connect,dba,exp_full_database,imp_full_database to test01 with admin option;  ## 授权用户 test01,拥有连接,管理员,导入,导出权限,并可以传递权限。(根据需求自己定义权限)

11修改sid名称

1、检查原来的数据库实例名

$ echo $ORACLE_SID

helowin

$ sqlplus / as sysdba

> select instance from v$thread;

INSTANCE

--------------------------------------------------------------------------------

helowin

2、关闭数据库

> shutdown immediate;

> exit;

3、修改oracle用户的ORACLE_SID环境变量,如由helowin修改为orcl

$ vi /home/oracle/.bash_profile

export ORACLE_SID=orcl

$ source /home/oracle/.bash_profile

4、修改/etc/oratab文件,将sid名由helowin修改为orcl

$ vi /etc/oratab

orcl:/home/oracle/app/oracle/product/11.2.0/dbhome_2:Y

5、进入到$ORACLE_HOME/dbs目录

将所有文件名中包含原来的sid的修改为对应的新sid的

$ cd $ORACLE_HOME/dbs

$ mv hc_helowin.dat hc_orcl.dat 

$ mv inithelowin.ora initorcl.ora

$ mv lkHELOWIN lkORCL

$ mv orapwhelowin orapworcl

$ mv spfilehelowin.ora spfileorcl.ora 

6、重建口令文件

因为口令文件改名后不能在新实例中使用,所以重建

$ orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=xgds entries=5 force=y 

7、启动数据库

$ sqlplus / as sysdba 

> startup

8、检查数据库实例名

通过如下语句检查数据库实例名,发现实例名已经由orcl变成doiido

> select instance from v$thread; 

INSTANCE

doiido

这个时候虽然实例名字已经改成doiido,但是数据库名(dbname)仍然为orcl,因此在客户端仍旧无法连接,如需要连接,则需修改dbname

你可能感兴趣的:(docker,服务器,linux)