通过Dockerfile维护
整体流程
编写Dockerfile -> 通过docker build生成一个镜像 -> docker push 提交到远程 -> docker pull 别人拉取使用
或
编写Dockerfile -> 提交到github -> docker hub 设置automated build -> docker pull 别人拉取使用
通过镜像直接维护
本地docker pull最简单的镜像 -> docker commit提交镜像 -> docker push 提交到远程 -> docker pull 别人拉取使用
DockerFile流程
编写Dockerfile
不重复,可以看之前的文章
注意一点,编写的时候,可以边写,边执行自己的命令进行测试,构建自己的系统;
生成镜像
docker build -t 容器名称 dockerfile路径(eg:docker build -t test_weeb ./)
执行的时候如果出错了,可以docker run生成一个容器,然后进行调试
需要注意的是,出错了之后不需要删除之前的,docker build会有缓存镜像,然后继续往下执行
接下来的流程和”通过镜像维护差不多”
创建容器
提交到本地库
....
需要注意的是每一条修改镜像的命令都写入到dockerfile中,下次构建的话就是最新的镜像了
通过镜像维护
搜索可用镜像
docker search alpine
拉取远程镜像
docker pull alpine
创建容器
docker run -t -i -d -p 8004:80 --name=test -h 127.0.0.1 test_web /bin/bash
注意替换成自己需要的镜像名称
提交到本地库
docker commit -m="this is test" --author='sunnysmilez' test test_web_bak:v1
本地登录docker hub
查看文件(~/.docker/config.json)是否存在,不存在则创建
docker login 输入用户名密码
修改本地镜像名称为远程的名称
docker tag test_web_bak:v1 sunnysmilez/web-lnmpr
我远程的是sunnysmilez/web-lnmpr
提交到远程
docker push sunnysmilez/web-lnmpr
如果别人想启动一样的环境有没有快速的办法
“拷贝,粘贴”
导出本地容器
docker export web_test > web_test.tar
传递给别人
导入本地
cat web_test.tar | docker import - web_test:latest
注意是导入本地形成了镜像,使用的话需要执行上面的创建容器命令