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
可以选择国内的一些源地址:
$ 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
均不成功的话使用(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
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
3.再次安装docker
$ sudo yum install docker-ce
安装前:注意各个磁盘空间大小,docker默认安装目录是/var/lib/docker
[root@iZ2zecel2bg23hxk44792sZ /]# docker search oracle
[root@iZ2zecel2bg23hxk44792sZ ~]# docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
docker images
二、创建容器初步了解如何使用镜像
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
# docker exec -it oracle11g bash
$ 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
[root@7b305671b3b8 ~]# ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
su - oracle
sqlplus / as sysdba
SQL> alter user system identified by system;
SQL> alter user sys identified by sys;
修改oracle默认用户密码永不过期
SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
SQL> exit
exit 是退休sql 软连接
$ lsnrctl status
注意: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 。 参数根据自己的需求自行修改
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,拥有连接,管理员,导入,导出权限,并可以传递权限。(根据需求自己定义权限)
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