docker commit 提交容器副本使之成为一个新的容器
docker run -it -p 6666:8080 tomcat 从hub上下载Tomcat镜像到本地并成功运行,
-i 交互
-t 终端
-p 端口
-P(大写) 分配随机端口
docker commit -a="xxxx" -m="xxxxx" 容器ID 容器名字:标签名(中间用冒号隔开)
-a 后面写作者
-m 标准信息
docker ps -q 以ID的形式查看当前的docker镜像
docker -rm -f $(docker ps -q) 批量删除正在运行的容器镜像
docker ps 查看当前正在运行的容器
docker run -d -p 6666:8080 tomcat -d 表示以后台启动
docker inspect 容器ID 以JSON形式描述容器
docker容器数据卷
主要作用----做持久化 容器之间可以共享数据,相当于外置的移动硬盘,
-
添加相关的容器卷
-
命令添加
docker run -it -v /宿主机的绝对路劲:/容器内目录 镜像名 如果没有文件夹会自动创建文件夹
-
dockerfile添加
根目录新建mydocker文件并进入
vim DockerfileFROM centos VOLUME ["/容器卷1","容器卷2"] CMD echo "随便打印什么东西的 不重要" CMD /bin/bash 以上代码相当于 docker run -it -v /host1:容器卷1 -v /host2:容器卷2 centos /bin/bash build 生成镜像 docker build -f /mydocker/Dockerfile -t 镜像名字 然后开始run容器 docker run -it 容器名字
通过dockerfile的方式建立的文件在宿主机/var/lib/docker/volumes/
如果访问遇到cannot open directory .: Permission denied错误
则在挂在目录后面多加一个–privileged=truedocker run -it -v /宿主机的绝对路劲:/容器内目录 --privileged=true 镜像名
-
-
添加容器数据卷,带权限
docker run -it -v /宿主机的绝对路劲:/容器内目录:ro 镜像名 在最后添加一个ro 可以实现权限 ---只读--- 如果没有文件夹会自动创建文件夹
-
数据卷容器 --volumes-form
容器之间配置信息的传递,数据卷的生命周期一直持续到没有容器使用它为止创建一个名字1 的容器 docker run -it --name 名字1 容器名 让名字2 的镜像继承至 名字1 docker run -it --name 名字2 --volumes-form 名字1 容器名 让 名字3 的镜像继承至 名字1 docker run -it --name 名字3 --volumes-form 名字1 容器名 在 名字1 的镜像中创建文件 名字2 和名字3 都可以看到 同时,名字2 和名字3 的镜像创建文件也是可以相互看到的 删除名字1 的镜像,对名字2 和名字3 的镜像无任务影响,在名字1 内新建的文件也不会删除。