这里才是开始
Docker是容器技术的代表,容器技术是将程序隔离打包的技术,其实并不是一个很新的技术,发展是Docker 2013开源实现的,在云计算非常重要,可以说是一个云计算的计算,因为解决了软件安装的问题,是开发和运维可以使用同一种语言来沟通,微服务的概念也是相辅相成的。
定义:一个开源的项目,可以将任何应用以轻量级的容器来打包运行。
类比 -> 可以粗糙的理解为轻量级的虚拟机
Docker构架介绍
中间是host,也就是我们用来操作的虚拟机,核心是docker daemon,这个程序负责各种各样的docker操作,比如说运行一个容器,下载一个镜像等等。我们可以通过客户端用命令交给docker daemon进行交互。Registry是一个所有docker玩家共享的一个服务。
初体验:
1.用ubuntu这个image运行一个echo 命令,执行docker命令了之后docker会先在本地找是否有镜像,如果没有就会从registry进行下载。
1 |
docker run ubuntu echo hello docker |
2.查看本地镜像
1 |
docker images |
3.运行Nginx
1 |
docker run -p 8080:80 -d daocloud.io/nginx |
返回的字符串是docker的container的id,-p做端口映射,把image中的Nginx的端口80映射到localhost的8080端口,-d是允许程序直接返回(作为守护进程)
4.查看docker正在运行的所有镜像
1 |
docker ps |
那么我们现在就在本地的8080端口运行了一个Nginx,我们可以打开看看。
5.现在我们更换这个html页面,注意这里是使用了container id加上路径名
1 |
docker cp index.html fc765f68f93e://usr/share/nginx/html |
6.停止docker,会返回停止的这个container的id
1 |
docker stop fc765f68f93e |
7.现在我们再开启一次Nginx服务然后进入刚才的localhost:8080可以看到网页又回到了初始的,这是因为docker在容器内所有的改动都是暂时的。要保存需要一些另外的操作。现在我们重复之前的操作再把页面复制。可以看到docker又恢复到了之前的状态docker is fun。
8.保存我们现在的网页,commit命令,最后跟上的是新的image的名字
1 |
docker commit -m 'fun' 4d52afbb729f nginx-fun |
注意注意注意!:保存之后返回的是一个新的镜像image的id
现在我们查看一下所有镜像看到我们刚才添加的镜像已经成功了
1 |
docker images |
9.删除image,之前我们错误的创建了一个没有名字的image <none> 现在我们删除这个错误的,删除之后再docker images就可以看到删除了
1 |
docker rmi dfe70f083914 |
10.停掉之后我们如果像之前一样使用 docker ps 就看不到了因为现在我们并没有运行,这个时候我们要使用docker ps -a,虽然我们停掉了,但是还是可以还是有一些痕迹。
1 |
docker ps -a |
11.去掉这些镜像的痕迹
1 |
docker rm 4d52afbb729f ff623949bd69 fc765f68f93e 1847bf3d7688 |
好的,现在我们已经初次体验了docker的强大,但是我们其实在实际的操作中很少使用image的方式来创建,我们一般使用的是Docker File的方式来创建