Docker学习02---狂神说

Docker学习02—狂神说

容器数据卷

什么是容器数据卷
容器之间可以有一个数据共享的技术!Docker 容器中产生的数据,同步到本地!
这就是卷技术!目录的挂载,将我们容器内的目录,挂载到Linux上面
总结一句话:容器的持久化和同步操作!容器间也是可以数据共享的!

使用数据卷

[root@docker01 ~]# docker run -it -v /home/ceshi:/home/ --name Centos01 centos
[root@docker01 ~]# docker ps
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                    NAMES
ceacb503627e        centos                "/bin/bash"              15 seconds ago      Up 13 seconds                                Centos01
9ecabbcd7092        tomcat                "catalina.sh run"        20 minutes ago      Up 20 minutes       0.0.0.0:8080->8080/tcp   tomcat01
d64486213e0d        portainer/portainer   "/portainer"             About an hour ago   Up About an hour    0.0.0.0:8088->9000/tcp   exciting_swirles
d0ba2c986d32        nginx                 "/docker-entrypoint.…"   7 hours ago         Up 7 hours          0.0.0.0:8000->80/tcp     nginx01
[root@ceacb503627e /]# cd /home/
[root@ceacb503627e home]# ls
[root@ceacb503627e home]# touch wangyi.txt
[root@ceacb503627e home]# read escape sequence
[root@docker01 ~]# ll /home/ceshi/
total 0
-rw-r--r--. 1 root root 0 Jul 19 18:04 wangyi.txt
[root@docker01 ~]# docker inspect ceacb503627e
......
        "Mounts": [
            {
                "Type": "bind",
                "Source": "/home/ceshi",
                "Destination": "/home",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
.....

具名和匿名挂载

匿名挂载

-v 容器内路径!

docker run -d -P --name nginx01 -v /etc/nginx nginx

查看所有的volume的情况

[root@docker01 ~]# docker volume ls    
DRIVER              VOLUME NAME
local               33ae588fae6d34f511a769948f0d3d123c9d45c442ac7728cb85599c2657e50d       

这里发现,这种就是匿名挂载,我们在 -v只写了容器内的路径,没有写容器外的路径!

具名挂载

[root@docker01 ~]# docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx nginx
[root@docker01 ~]# docker volume ls                  
DRIVER              VOLUME NAME
local               juming-nginx

通过 -v 卷名:容器内路径

查看一下这个卷

所有的docker容器内的卷,没有指定目录的情况下都是在/var/lib/docker/volumes/xxxx/_data下
如果指定了目录,docker volume ls是查看不到的

三种挂载: 匿名挂载、具名挂载、指定路径挂载

-v 容器内路径 #匿名挂载
-v 卷名:容器内路径 #具名挂载
-v /宿主机路径:容器内路径 #指定路径挂载 docker volume ls 是查看不到的

拓展:

通过 -v 容器内路径: ro rw 改变读写权限

ro #readonly 只读
rw #read write 可读可写

docker run -d -P --name nginx05 -v juming:/etc/nginx:ro nginx
docker run -d -P --name nginx05 -v juming:/etc/nginx:rw nginx

ro 只要看到ro就说明这个路径只能通过宿主机来操作,容器内部是无法操作!

初始Dockerfile
Dockerfile 就是用来构建docker镜像的构建文件!命令脚本!先体验一下!

通过这个脚本可以生成镜像,镜像

创建一个dockerfile文件,名字可以随便 建议Dockerfile

文件中的内容 指令(大写) 参数

FROM centos

VOLUME ["volume01","volume02"]

CMD echo "----end----"
CMD /bin/bash

#这里的每个命令,就是镜像的一层!

Docker网络

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值