docker自己提交配置好的容器,然后生成一个新的镜像,以后启动就以配置好的镜像作为模板启动
代码如下:
docker commit -a "author" -m "commit message" 容器id namespace/name:tag
如果想把镜像推到仓库里面去:
--本地镜像素材原型,本地的images
--登录阿里云开发者平台,进入之后搜索容器镜像服务,即可进入阿里云镜像管理
--创建仓库镜像,命名空间;仓库名称;
--将镜像推送到registry
$ sudo docker login --username=username registry.cn-hangzhou.aliyuncs.com
$ sudo docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/ale/mytomcat9:[镜像版本号]
$ sudo docker push registry.cn-hangzhou.aliyuncs.com/ale/mytomcat9:[镜像版本号]
--公有云可以查询到
--查看详情
进入容器命令:
docker exec -it 容器id /bin/bash
启动添加容器数据卷:
docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名
带权限:ro(readonly只读)
docker run -it -v /宿主机绝对路径目录:/容器内目录:ro 镜像名
注意:Docker挂载主机目录Docker访问出现cannot open directory.:Permission denied
解决办法:在挂载目录后多加一个 --privileged=true参数即可
DockerFile添加容器数据卷
--根目录下创建mydocker文件夹并进入
mkdir mydocker
vi Dockerfile
--可在Dockerfile中使用VOLUME指令来给镜像添加一个或多个数据卷
VOLUME["/dataVolumeContainer","dataVolumeContainer2","/dataVolumeContainer3"]
说明:
出于可移植和分享的考虑,用-v 主机目录:容器目录这种方法不能够直接在Dockerfile中实现
由于宿主机目录是依赖于特定宿主机的,并不能够保证在所有的宿主机上都存在这样的特定目录
案例:
FROM centos
VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"]
CMD echo "finished,------success1"
CMD /bin/bash
--File构建
docker build -f /mydocker/Dockerfile -t namespace/name .(有个小点)
--build后生成镜像 - 获得一个新镜像 namespace/name
--run容器
--本地的地址:通过docker inspect 容器id可以查看
--通过
查看容器详情:
docker inspect 容器id