Docker容器

特点

轻量 : 在一台机器上运行的多个 Docker 容器可以共享这台机器的操作系统内核;它们能够迅速启动,只需占用很少的计算和内存资源。镜像是通过文件系统层进行构造的,并共享一些公共文件。这样就能尽量降低磁盘用量,并能更快地下载镜像。

标准 : Docker 容器基于开放式标准,能够在所有主流 Linux 版本、Microsoft Windows 以及包括 VM、裸机服务器和云在内的任何基础设施上运行。

安全 : Docker 赋予应用的隔离性不仅限于彼此隔离,还独立于底层的基础设施。Docker 默认提供最强的隔离,因此应用出现问题,也只是单个容器的问题,而不会波及到整台机器。

镜像、容器、仓库:
一个镜像就代表一个软件;
基于某个镜像运行就是生成一个程序实例,这个程序实例就是容器;
仓库是用来存储 Docker 中所有镜像的。
其中仓库又分为远程仓库和本地仓库,和 Maven 类似,倘若每次都从远程下载依赖,则会大大降低效率,为此,Maven 的策略是第一次访问依赖时,将其下载到本地仓库,第二次、第三次使用时直接用本地仓库的依赖即可,Docker 的远程仓库和本地仓库的作用也是类似的。


容器与虚拟机的比较

容器虚拟化的是操作系统,而不是硬件,因此容器更容易移植,效率也更高。
容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。
传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程。
因此容器要比传统虚拟机更为轻便。

虚拟机更擅长于彻底隔离整个运行环境。如云服务提供商通常采用虚拟机技术隔离不同的用户。
 Docker 通常用于隔离不同的应用 ,例如前端,后端,数据库,消息队列。


常用命令

systemctl start docker 
当开启了Docker服务的时候,docker的守护进程   会一直等待客户端发出命令,一旦接收到命令,docker就会去镜像仓库去找,然后拉到本地。

docker images 查看所有镜像
docker rmi 删除镜像 -f强制删除
docker pull + 镜像名
docker run:先看本地是否有镜像,没有的话自动pull
docker run = docker create+ docker start
         -d(在后台运行) , --name 指定名称 -p 做端口映射
docker start 开启容器内的进程,docker stop 关闭容器内的进程

docker exec 进入容器中的进程

重启虚拟机的时候,容器只是被关闭了,不需要docker run,直接docker start就可以了。
如果每次都docker run,就会重复创建容器。
端口映射就是通过宿主机的端口能访问到的,比如我docker容器中有两个mysql服务,需要映射到两个不同的端口,否则怎么区分我用哪个呢?  


数据卷

一个虚拟目录,作为中间桥梁,完成容器内目录和宿主机(虚拟机)目录的映射,这样对宿主机目录进行操作的时候,容器目录也会有相应的变动。

容器创建时,如果数据卷不存在,则自动创建(不需要手动create数据卷)
同时,如果没有指定数据卷,也会默认分配一个匿名卷(名字随机生成的)
这样创建,我们就可以指定数据卷的名称

docker volume inspect 可以看宿主目录的具体位置
docker volume ls 可以看一共有哪些数据卷(包括匿名卷)
删除数据的时候,先删数据,再删数据卷。
使用docker volume prune:提前打开要用的容器,再prune,以防删除有用的数据。


本地目录

数据卷目录的结构比较深(Docker服务指定的目录),不易记忆
因此我们也可以直接挂载到本地目录,即直接将宿主目录与容器目录进行挂载


数据卷挂载和本地挂载

数据挂载是通过增加一个数据卷(桥梁),将容器内的数据流向数据卷,再流向宿主机目录,这个目录是由docker指定的,不可更改。正是因为这个目录不可改变性,将来在进行宿主机之间的数据迁移的时候,很方便,安全。同时数据卷挂载一般用来存放需要持久化的文件。

本地挂载是直接将容器内的数据挂载到宿主机目录(可以自定义,方便记忆的路径)。因此不受docker管理维护,将来在数据迁移的时候不安全。也可以用来存放持久化的文件。本地挂载更适合需要直接访问宿主机文件系统的场景。

自定义镜像

之前用的都是别人准备的,如果自己要部署一个java项目,并将其打包成镜像。
镜像的结构:分层存储的架构 。镜像实际是由多层文件系统联合组成。

TODO

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值