打包镜像并分布到dockerhub中,这里以mysql为例。
一、运行容器,并进入容器
docker run -it 容器id
docker exec -it 容器id bash
二、更新本地安装包
在容器中执行 yum update 指令
三、在容器内部安装vim
在容器中执行 yum install vim -y 指令
四、保存镜像
注:这里需要重开一个窗口,因为如果退出容器,步骤二、三的操作将没了
在新窗口执行 docker commit 原镜像id 新镜像名
注:原镜像id通过docker ps获取
通过 docker images 可以查看已经有新的镜像 cs_build ,
注:新名字首字母不能大写
如果 cs_build:1.0 则是设置tag为1.0,否则默认为latest
完成上面步骤后,一窗口的容器就可以退出了。
解释:上面的步骤大概意思就是,窗口一运行进入mysql容器,
然后在容器内安装一个vim的工具;此时再通过第二个窗口复制一
份mysql容器,此时复制的容器因为窗口一没有退出容器的
原因,导致vim工具还存在。
五、分发镜像
将打包的镜像上传到docker远程仓库。
1、登入 docker host
docker login -u 账号
2、修改镜像名
docker tag 原镜像名:tag docker账号/新镜像名:tag
注:这里的原镜像名为 docker images 中你需要上传的镜
像名,如果镜像名后面不加tag,默认tag为latest。
3、上传到仓库
docker push 镜像名:tag
注:镜像名通过docker images获取,如果镜像名后面不加tag,默认上传tag为latest的镜像
4、查看远程镜像仓库
docker官网: https://hub.docker.com/
通过上面可以看到,我们已经将本地的镜像打包上传到了dockerhub上了。
六、本地拉取镜像
将远程仓库的镜像拉下来并且运行。
执行 docker pull yuqn/cs_build:1.0 指令
可以看到镜像已经下载下来了
七、启动容器
1、启动容器
2、查看容器
这里一开始是想通过打包的方式,来达到数据库初始化:在发布之前创建了一个数据库,然后打包到远程仓库,但是拉下来的时候数据库已经消失了。这样的话,那我要初始化数据库就只能读取配置文件了,有大佬知道怎么处理吗?