在linux上安装docker
1.uname -r 查看linux版本 3.1
2. 安装docker
yum install docker
3. 启动docker
systemctl start docker
4. 查看版本
docker -v
5. 设置开机启动docker
systemctl enable docker
6.停止docker
systemctl stop docker
docker常用命令
1.镜像操作
docker images 查看所有镜像
2. 删除镜像
docker rmi imageid
3. 查找镜像
docker search 镜像名称; 如: docker search mysql
直接去docker hub官网搜索
https://hub.docker.com/
4.下载镜像
docker pull 镜像名:标签名 如果省略标签那么下的是最新版本
如 docker pull redis
pull镜像后,需要使用run来启动镜像;启动后的镜像就是容器,容器运行着的容器和没运行的容器
5. docker ps 查询运行中的容器
6. docker ps -a 查询所有容器
7.启动镜像
docker run -d -p 端口:端口 镜像名
-d:后台执行
-p:将主机的端口映射到容器端口 主机端口:容器内部端口
为了让外界能够访问端口,需要把容器的端口暴露给外界。就是映射
下面启动redis为例
docker run -d -p 6379:6379 redis
redis的端口号是6379
下面是客户端连接redis命令
redis-cli -h host -p port -a password(Redis123)
:\redis-cli -h 192.168.43.52 -p 6379
host:远程redis服务器host
port:远程redis服务端口
password:远程redis服务密码(无密码的的话就不需要-a参数了)
8.停止容器
docker stop 容器id
9.启动容器
docker start 容器id
10. 删除容 器 才能删除对应镜像
docker rm 容器id
创建Oracle容器
mkdir ~/oracle_11g
cd ~/oracle_11g
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
此镜像为阿里云基于centos7 打包的oracle11g镜像 约为6G
本地虚拟机安装语句:
docker run --restart=always -d -p 1521:1521 -v oracle_11g:/tmp --privileged=true --name oracle_11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
因为上述已经使用了数据卷,而数据挂在的实际位置在
/var/lib/docker/volumes/oracle_11g
进入容器
docker exec -it oracle_11g /bin/bash
登陆root账号
su root
#然后输入密码,该镜像默认密码为:helowin
修改环境变量
vi /etc/profile
在行末 unset -f pathmunge 下一行 按i 粘贴如下环境变量
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
按esc 输入 :wq! 按enter
然后source命令时令文件中的修改执行生效
source /etc/profile
配置软连接,第一次创建即可,类似于windows的超链接
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
容器切换oracle用户
su oracle
#密码也是 oracle
登录oracle dba
sqlplus /nolog
conn /as sysdba
修改初始账号
alter user system identified by 123456;
alter user sys identified by 123456;
设置密码永不过期
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
关闭
shutdown immediate;
再次启动数据库
startup;
修改oracle的本地tnsnames.ora文件
vi /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/tnsnames.ora
添加如下配置
具体代码如下
HELOWIN =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = helowin)
)
)
在oracle官网下载
https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html
Oracle instantclient 下载地址下载 Basic Package 即可。
解压到指定目录,如: C:\instantclient_21_3。
C:\instantclient_21_3 目录下新建 network/admin/ 并在其目录下 新建 tnsnames.ora 文件。
打开文件,设置如下
代码如下
HELOWIN =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = helowin)
)
)
配置 Windows 环境变量。
ORACLE_HOME = C:\instantclient_21_3
TNS_ADMIN = %ORACLE_HOME%\network\admin
NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK
启动 PLSQL。此时登录画面可以选择的数据库选项有刚刚配置的数据库了
登录成功,即连接成功。
接下来就是创建数据库用户及导入数据库dmp文件了
如果有orcl用户那么删除级联
drop user orcl cascade;
创建表空间,达梦数据库模仿这种,一个用户对应一个数据库空间
#创建表空间
create tablespace orcl_data_space DATAFILE'/home/oracle/app/oracle/oradata/helowin/orcldataspace.dbf' size 500m AUTOEXTEND ON MAXSIZE 30000m extent management LOCAL AUTOALLOCATE segment space management AUTO;
删除表空间NOTIFYDB_TEMP及其包含数据对象以及数据文件
drop tablespace orcl_data_space including contents and datafiles;
创建orcl并授权
#create user 用户名 identified by 密码 default tablespace XXXXX;
create user orcl identified by orcl default tablespace orcl_data_space;
#grant connect,resource,dba to 用户名 ;
grant connect,resource,dba to orcl;
从本机将dmp文件通过FileZilla等工具导入虚拟机下docker中oracle的数据卷位置
#oracle数据卷位置在 /var/lib/docker/volumes/oracle_11g
#把dmp文件放在这里
#然后进入容器
docker exec -it oracle_11g /bin/bash
#需要再次刷新一下配置文件,要不可能报不识别命令的错误
source /etc/profile
#授予权限,或者使用FileZilla,选择虚拟机上的文件设置所有权限,这样同步的数据卷就有相应权限
#虚拟机上授予权限 chmod 777 cp20190418.dmp 或界面化操作
#示例:
imp 用户名/密码 @orcl file=/home/userct/oss-shanxi/DbBackup20180328.dmp ignore=y full=y;
#实际:
imp orcl/orcl@helowin file=/tmp/cp20190418.dmp ignore=y full=y