OS:Centos7.8
内核:uname -r 
3.10.0-327.el7.x86_64

主要操作流程简介:
1.升级docker的版本(yum update)
2.安装docker服务(yum install docker)
3.拉取/下载Sybase镜像(docker pull)
4.创建并启动容器(docker run)
5.进入容器进行Sybase配置和操作


详细操作步骤

1.升级docker的版本
  升级docker版本,首先要升级所有包、包括升级软件和升级系统内核,然后再升级/安装高版本的docker。
  升级操作详情参考:《Centos7上升级docker版本
  
  如果不升级docker版本,直接 yum install -y docker 安装docker服务后,后续docker操作会报错,网上找资料说是因为Linux与docker版本的兼容性问题,需要升级docker版本才行。
  最初我没有升级,遇到一些列的报错,遇到的报错及排查过程,详情参考:《Centos7上使用docker镜像方式安装Sybase的报错问题处理

2.安装docker服务
yum install -y docker

3.拉取/下载Sybase镜像
搜索sybase镜像
docker search -s 10 sybase

Flag --stars has been deprecated, use --filter=stars=3 instead
INDEX       NAME                            DESCRIPTION          STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/ifnazar/sybase_15_7   SYBASE 15.7          21                   
docker.io   docker.io/datagrip/sybase       Sybase 15.7 & 16.0   18                   [OK]

下载sybase镜像
docker pull datagrip/sybase

下载镜像完毕后查看镜像
docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
docker.io/datagrip/sybase   latest              29cd514762d6        11 months ago       5.92 GB

导出镜像文件(方便以后可以直接通过 docker load -i 方式加载进行,就不需要重新pull了)
docker save -o /opt/sybase.tar docker.io/datagrip/sybase:latest


sybase账号
账号密码可以通过 cat /opt/sybase/init1.sql 查看
用户: tester
密码: guest1234
数据库: testdb
初始sa账号密码不知道,后面需要重置sa账号密码

4.创建并启动容器(docker run)
创建并启动容器(由于默认容器内磁盘只有10G,所以我加了 -v 参数,挂载共享目录到容器内使用,将宿主机的/opt/docker_data目录挂在到容器的/data目录)
mkdir -p /opt/docker_data
docker run -d -ti -p 8000:5000 -v /opt/docker_data:/data:rw --name datagrip-sybase datagrip/sybase
如果能接能执行成功,则安装成功,接下来就行sybase的相关配置和操作就行了。
但我执行 docker run 的时候报错了:/usr/bin/docker-current: Error response from daemon: containerd: container not started. 
报错的解决过程比较曲折,详情参考:《Centos7上使用docker镜像方式安装Sybase的报错问题处理


5.进入容器进行Sybase配置和操作
启动容器并进入容器继续操作
docker start datagrip-sybase
docker exec -ti datagrip-sybase /bin/sh
source /opt/sybase/SYBASE.sh    #加载环境变量
isql -U sa -P 1q2w3e -S MYSYBASE  #如果sa密码不知道,可以重置sybase sa账号密码,参考《Sybase数据库重置sa用户的密码
#isql -U tester -P guest1234 -S MYSYBASE

一般正常情况下,前面操作就OK了,剩下的主要是数据库操作。但我遇到了报错,详细处理过程参考《Centos7上使用docker镜像方式安装Sybase的报错问题处理

查看数据库版本信息
isql -U sa -P 1q2w3e -S MYSYBASE 
> select @@version
> go


创建设备、创建数据库(指定设备创建)

ln -s /data /opt/sybase/data/data_disk
source  /opt/sybase/SYBASE.sh
isql -U sa -P 1q2w3e -S MYSYBASE 

disk init name="testdb_dbdev",physname="/opt/sybase/data/testdb_dbdev.dat",vdevno=10,size=5120000   #注意设备编号vdevno不能重复,size单位是2K,size=5120000 即大小为 5120000*2K≈10G
go 
disk init name="testdb_logdev",physname="/opt/sybase/data/testdb_logdev.dat",vdevno=11,size=102400  #size=102400 即 102400*2K≈200M
go 
create database testdb on testdb_dbdev=20 log on testdb_logdev=10 
go 

创建登录用户并使之成为新建库的owner、并设置数据库为用户的默认库、设置
sp_addlogin test,123456
go
sp_role 'grant',oper_role,test
go
use testdb
go
sp_changedbowner testdb
go
sp_modifylogin testdb,defdb,testdb 
go
sp_modifylogin testdb,deflanguage,chinese
go

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐