承接上篇:这篇
由于安全规定:不允许docker 容器中的root拥有和宿主机root的权限,也就是上篇中启动docker 容器中的参数:
–privileged=true 这个是有安全风险的
我试了不加这个参数启动容器发现在容器内部db2start命令都会报错,暂时就不考虑用这个镜像了,改用其他镜像:
ibmoms/db2express-c
express-c本来就是开放出来学习的版本,所以先用这个试试,这个镜像已经有三年没有更新了,估计是转去维护其他镜像了
docker pull ibmoms/db2express-c
启动命令:
docker run -itd --name db2 -p 50000:50000 -e DB2INST1_PASSWORD=baidu -e LICENSE=accept ibmoms/db2express-c bash
这个是用bash命令去hung住容器,类似与 tail -f /etc/hosts
docker exec -it db2 /bin/bash
这个需要进去后,手动启动db2服务,
su - db2inst 切换到实例db2inst 这个实例是内置的用户,自己可以再建用户
db2start 启动db2服务
db2stop 停止db2服务
db2sampl 建立示例数据库和表
db2 list db directory 查看当前实例下有哪些数据库
db2 create db testdb 建立数据库testdb
连接数据库:db2 connect to testdb(db2 connect to <数据库名> )
断开当前连接:db2 disconnect current
建表:
db2 "create table test(ID BIGINT NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1,INCREMENT BY 1),USER_NAME VARCHAR(20),USER_AGES INT)"
查看当前数据库的所有表:
db2 list tables
插入数据:
db2 "insert into TEST values (1,'test',2)"
查询: db2 "select * from TEST"