Docker学习笔记

Docker介绍

最近花了点时间学习了一下docker,发现docker仍是挺好用的,学了后也在实际中使用到了,就是一个静态页面须要跑在服务器上查看效果,若是用node跑的话还须要在项目中加上其余项目中没有用到的东西,而后用nginx的话还须要写个nginx的配置文件,若是在你的文件夹里面还须要设置权限,都比较麻烦,而后我就直接用上了docker,在以前使用docker的时候也装上过nginx的docker镜像,而后就只须要一条命令建立一个nginx的容器,而后把目标目录挂载到nginx上就能够访问到了,而后每次打开只须要docker start一下就行了,很是方便。html

我再来说讲我对docker的认识,docker上你能够下载多个镜像,每一个镜像都是一个环境,而后镜像能够跑起来建立一个容器,建立的这个容器是镜像的一个实例,对镜像没有影响,就和咱们的new操做同样,一个镜像能够建立多个不一样的容器,你也能够把容器进行修改打包成一个镜像保存起来,而后你能够移植到各个客户端上去使用,这也是docker的一个用处,在之前配环境须要执行各类命令,而后又由于各类版本不一样的问题出现各类莫名其妙的问题,如今你能够打包成一个对应的镜像,使用的人只须要下下来而后run一下就行了。node

Docker准备

若是你须要使用(玩)docker的话你能够去docker官网下载一个安装包具体的安装不一样系统可能会有点不一样,能够参考一下菜鸟教程,其实若是你如今只是想尝试一下docker,并不想下载他的话这里有一个能够云把玩docker的地方,建立一个docker的帐号而后打开这里建立一个新的实例,里面就是一个已经有docker环境的系统同样,你就能够使用docker的各类命令去学习docker。nginx

Docker镜像

docker镜像(Images)就能够理解成是一个打包好的环境,和github同样,docker也有一个本身的hub,DockerHub,是一个全部人储存镜像的地方,你能够获取到别人的镜像来使用好比说你能够搜索nginx而后就能够看到搜索项中的nginx,这是一个官方的docker镜像,好比windstormrage/nginx这种就是用户本身上传的镜像,通常使用仍是使用官方的比较安全,而后你也能够上传你的镜像。git

Docker容器

docker容器(Container)能够理解成是镜像实例化出的一个系统,你能够运行容器中的命令,而后也能够打本身本地的目录挂载到容器对应位置,而后也能够把容器接口映射到本地上打开。github

Docker基本使用

咱们就经过一个小栗子来学习一下docker的操做,我这里使用playDocker来操做,你能够用你的电脑来操做。docker

拉取镜像

咱们拉取到一个nginx的镜像windows

docker pull nginx

docker会自动从你的源(DockerHub)上找到名字为nginx的镜像,而后拉取下来。
而后你能够经过命令来查看你本地拥有的镜像安全

docker images

img

运行镜像

拥有了一个镜像后你就能够运行它生成一个容器服务器

docker run -d -p 8360:80 nginx

img

其中-d是让容器在后台运行,-p是把内部的端口映射到咱们的主机上面,咱们这里是把nginx的80端口映射到了咱们的8360端口。而后返回的哈希值是咱们当前的容器的id,使用这个id咱们能够操做咱们的容器。好比说咱们能够经过学习

docker stop cf

其中cf是对应id的前几位,他只要能够找到对应的容器就能够来中止这个容器,而后若是是使用的playDocker来操做的话你能够点击这里来查看对应端口的页面

img

若是你用的是本身的电脑的话你能够打开localhost:8360看到你nginx运行起来的页面了。而后你能够经过

docker ps

查看你运行中的容器

你能够在DockerHub的nginx查看更多关于这个镜像的使用。

好比说我上面说的挂载项目就能够使用

docker run -p 8360:80 -v /html/demo:/usr/share/nginx/html -d nginx

这个应该就只能在本地尝试了,你第一次挂载的时候docker会找你要权限,你容许就行了

其中-v就是挂载,而后个人项目是在/html/demo上。而后你打开localhost:8360就能够看见你demo目录下的文件了。

修改容器

其实就是在你运行镜像的时候能够加上你须要运行容器里面的命令

docker run learn/tutorial apt-get install -y ping

在你运行learn/tutorial的时候docker发现你并无这个镜像,而后docker会本身去hub上去找,而后下载下来,而后后面的apt-get install -y ping就是在tutorial中安装ping命令。 你能够经过

docker ps -a

来找到你当前的容器,你修改了容器后能够经过commit命令来保存你此次修改,他的保存是生成一个新的镜像。

docker commit fc windstormrage/ping

其中的fc是你容器的id,而后后面跟着的是你的镜像名称,镜像名称最好是以你的DockeHun的名称加上/而后加上镜像名组成,否则到后面你不能上传,由于镜像只能上传到本身名字的空间下。

image

而后你能够经过run命令来运行你刚刚打包了的镜像

docker run windstormrage/ping ping www.google.com

而后你须要知道的是你每次run都是建立了一个新的容器,对你以前建立的容器是没有影响的。

上传镜像

发布镜像很简单

docker push windstormrage/ping

注意的就是你的用户名须要正确,否则会报错。

经过dockerfile来建立镜像

其实docker镜像通常是经过dockerfile来建立,咱们这里只是简单的入门,暂时不涉及到本身手动来建立一个镜像,若是感兴趣的能够看看后面的参考资料。

参考资料

菜鸟教程

docker官方入门教程

相关文章
相关标签/搜索