.查找所有的db2镜像
docker pull ibmcom/db2
2.拉取镜像
我这里使用的最新版本的镜像,如果不需要最新的,可以依据自己情况去指定版本。方式:docker pull db2:11.5.4.0
docker pull ibmcom/db2
3.启动容器并挂载
-
docker run -d -p 50001:50000 --name db2_50001 --privileged=true -e DB2INST1_PASSWORD=123456 -e DBNAME=testdb -e LICENSE=accept -v /data/tadopDataProject/db2/50001:/database ibmcom/db2
参数说明:
- -d: 表示在后台启动容器;
- -p 50001:50000: 容器内部的 50000 端口映射主机的 50000 端口;
- --name db2_50001:将容器命名为 db2_50001
- --privileged=true:使得容器内的 root 拥有真正的 root 权限。
- -e DB2INST1_PASSWORD=123456:设置内置实例用户 db2inst1 的密码为 123456
- -e DBNAME=testdb:容器启动时自动创建一个名为 testdb 的数据库,如果不指定该参数则不创建数据库
- -e LICENSE=accept:接受协议
- -v /data/tadopDataProject/db2/50001:/database:挂载目录,其中/data/tadopDataProject/db2/50001 是宿主机的目录
4.查看是否启动成功
-
docker ps
-
netstat -anp |grep 50001
5.进入容器执行db2命令
docker exec -it db2_50001 bash
执行如下命令切换到实例用户 db2inst1:
注意:一定要写中间的那个横条(-)。
su - db2inst1
查看运行状态:
db2pd -
查看数据库和补丁版本:
db2level
查看已经创建的数据库:
db2 list db directory
执行命令连接 testdb 数据库:
db2 connect to testdb
创建一个名为 TEST 的表:
注意:db2 命令后面的sql语句需要用引号括起来,否中会报 -bash: syntax error near unexpected token `(' 错误。
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
我们还可以执行如下命令再创建一个 SAMPLE 数据库(样例数据库):
db2sampl
再次执行 db2 list dbdirectory 命令查看是否创建成功
最后执行 exit 即可退出容器,返回到宿主机。
链接 testdb 数据库
后记:如关闭服务器,下次想再启动该容器,
docker 查看所有容器(包含所有状态)
docker ps -a
docker 启动一个容器
docker start 76fff8344262
docker 进入容器
docker exec -it 76fff8344262 /bin/bash
切換数据库用户
su - db2inst1
查看db2状态
db2pd -
连接db2数据库
db2 connect to testdb