目录
在学习docker之前我们先要熟悉Linux系统,推荐阅读:Linux笔记(狂神说) - 你我不在年少 - 博客园
1.Linux系统目录结构
以下是对这些目录的解释:
- /bin:bin是Binary的缩写, 这个目录存放着最经常使用的命令。
- /boot: 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
- /dev : dev是Device(设备)的缩写, 存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
- /etc: 这个目录用来存放所有的系统管理所需要的配置文件和子目录。
- /home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
- /lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。
- /lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
- /media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
- /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
- /opt:这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
- /proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
- /root:该目录为系统管理员,也称作超级权限者的用户主目录。
- /sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
- /srv:该目录存放一些服务启动之后需要提取的数据。
- /sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
- /tmp:这个目录是用来存放一些临时文件的。
- /usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
- /usr/bin: 系统用户使用的应用程序。
- /usr/sbin: 超级用户使用的比较高级的管理程序和系统守护程序。
- /usr/src: 内核源代码默认的放置目录。
- /var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
- /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除
2.处理目录的常用命令
- ls: 列出目录
- cd:切换目录
- pwd:显示目前的目录
- mkdir:创建一个新的目录
- rmdir:删除一个空的目录
- cp: 复制文件或目录
- rm: 移除文件或目录
- mv: 移动文件与目录,或修改文件与目录的名称
你可以使用 man [命令] 来查看各个命令的使用文档,如 :man cp
3.Docker概述
想象一个场景,公司的开发和运维是两个环境,所以对于开发人员电脑上运行得很好的程序可能到了运维人员手中就运行不了了,要重新配置环境和端口;配置环境是十分费时费力的,所以如果能发布一个项目,jar包+(Redis、MySQL、jdk...)一起上线就会方便很多,也就是项目带着环境安装打包,以上问题的解决方案就是Docker!
Docker的思想来自于集装箱,Docker的核心思想就是隔离,不同开发环境(集装箱)相互隔离
java——打包成apk——应用商店——手机下载apk——安装使用
java——打包成镜像(jar+环境)——镜像仓库——下载镜像——安装使用
本质:所有的技术都是因为出现了一些问题,我们需要去解决才出现的,所以我们需要不断去学习新技术
ps:Docker是基于Go语言开发的
4.Docker历史
2010年,几个搞IT的年轻人,就在美国成立了一家公司dotCloud,做一些 pass 的云计算服务,也就是Linux虚拟机有关的容器技术。他们将自己的技术(容器化技术)命名就是 Docker。Docker 刚刚诞生的时候,没有引起行业的注意,公司就快活不下去了。于是,他们决定开源Docker,也就是开放源代码。2013年,Docker开源,于是越来越多的人发现了docker的优点,Docker 每个月都会更新一个版本,直到2014年4月9日,Docker1.0发布。
Docker为什么这么火?轻巧,比如说只需要打包Linux虚拟机的核心kernel
在容器技术出来之前,我们都是使用虚拟机技术,但是缺点是占用资源(模拟了很多不需要的软硬件)、步骤多、启动慢
虚拟机:在window中装一个Vmware,通过这个软件我们可以虚拟出来一台或者多台电脑
docker:隔离,只需要最核心的环境即可,十分小巧,并不是模拟整个操作系统
虚拟机属于虚拟化技术,Docker容器技术也是一种虚拟化技术
官方文档地址:Docker Docs
仓库地址(dockerhub类似于github):Docker Hub Container Image Library | App Containerization