假设我们现在需要搭建DB集群,传统的做法是这样的:在虚拟机创建多个centos并且全部安装DB,操作过程很麻烦;但是现在我们基于docker已经运行了一个容器,并且容器中已经安装了DB,完全可以当前容器的内容封装为一个新镜像,然后再去执行多次这个镜像即可拥有多个DB环境.
目前我已经有一个容器ID:b9e53b08485a,容器运行centos,并且已经安装DB,首先将容器提交镜像,产生为一个独立的镜像
(1).执行命令:
代码语言:javascript复制docker commit -m="centos installed db" -a="gao" b9e53b08485a centosbygao:7 //将容器创建为新的镜像
参数说明:-m:提交的描述信息 -a:指定镜像作者 b9e53b08485a是容器ID centosbygao:7:指定要创建的目标镜像名
(2).查看生产的镜像:
docker images
输出内容:
REPOSITORY TAG IMAGE ID CREATED SIZE
centosbygao 7 a7d9cafdc518 2 minutes ago 565MB
centos 7 9f38484d220f 5 weeks ago 202MB
(3).运行镜像生成多个容器
//执行1
代码语言:javascript复制docker run -d -i -t -p 3306:8001 a7d9cafdc518 /bin/bash
//执行2
代码语言:javascript复制docker run -d -i -t -p 3306:8002 a7d9cafdc518 /bin/bash
//执行3
代码语言:javascript复制docker run -d -i -t -p 3306:8003 a7d9cafdc518 /bin/bash
上面就生成3个容器,全部安装DB的容器,并且映射内部的端口到宿主机的端口