Docker学习笔记

这里不讲docker的具体操作,网上文档非常多,看一遍基本就差不多了。如极客网的wiki

在这里记录一下对docker的理解:


1、docker也是一种虚拟化技术,和VMware、VirtualBox、OpenStack一样。不同的是docker是在操做系统之上的虚拟化,后面都是基于硬件的虚拟化。既然docker是基于操作系统的虚拟化,它就要通过映射使用主机的网络端口,还可以通过挂接使用本机的路径,感觉docker最大的有点是部署的方便,一次部署到处使用。

2、docker镜像:可以对应到虚拟机的操作系统,将镜像加载之后就装好了一个装好操作系统并部署好运行环境的ghost。如装好pqsql数据库的centos7.1,或者装好nodejs的centos7.1。

3、docker容器:docker镜像实例化之后,再在里面运行自己的程序,如容器以上述装好nodejs的centos7.1上运行nodejs程序。

4、docker仓库:可以理解为centos的yum源或则github,里面有装好的各种各样镜像可供只用,用户自己也可以搭建本地仓库、创建自己的镜像。

5、镜像与容器:镜像有点类似于类的概念,容器有点类似于对象的概念,可以理解为容器是镜像的实例化。通过cmit可以将容器保存为镜像。

6、docker-compose:docker的一个项目,利用他可以更方便的操作docker,如一次开启多个容器。

常用的docker命令:

容器:
docker ps -a    列出所有容器
docker exec -it container_name bash    进入容器
sudo docker export 7691a814370e > ubuntu.tar    导出容器快照
docker rm  container_name    删除容器
docker stop $(docker ps -a -q)    停止所有的container,这样才能够删除其中的images
docker rm $(docker ps -a -q) 删除所有container
docker images    列出所有容器

在容器和宿主机器之间拷贝文件:

从主机复制到容器sudo docker cp host_path containerID:container_path
从容器复制到主机sudo docker cp containerID:container_path host_path


镜像:
sudo docker save -o ubuntu_14.04.tar ubuntu:14.04    导出镜像到本地文件
sudo docker load < ubuntu_14.04.tar    导入到本地镜像库
docker rmi image_name    删除镜像
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")    删除untagged images,也就是那些id为<None>的image
docker rmi $(docker images -q)    删除全部image


由容器创建镜像
docker run -t -i 镜像名 bash    启动容器并修改,安装XXX
sudo docker commit -m "说明信息" -a "用户信息" 容器_id ouruser/sinatra:v2    保存成新的镜像(在镜像中操作之后)
docker save -o ubuntu_14.04.tar ubuntu:14.04    导出镜像道本地


docker-compose:
docker-compose run ubuntu ping docker.com    启动一个 ubuntu 服务,执行 ping docker.com 命令

posted on 2018-03-19 09:58  米仓山下  阅读(373)  评论(0编辑  收藏  举报

导航