学习docker
https://yeasy.gitbooks.io/docker_practice/content/
删除docker
https://www.cnblogs.com/q4486233/p/6482711.html
避免使用sudo docker
http://blog.csdn.net/baidu_36342103/article/details/69357438
传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。
docker比传统虚拟化的优势
1、更快速的启动时间(直接在宿主的内核上跑的)
2、有效利用资源(不用虚拟硬件环境)
3、一致地运行环境(开发、测试、调试)
当利用 docker run 来创建容器时,Docker 在后台运行的标准操作包括:
检查本地是否存在指定的镜像,不存在就从公有仓库下载
利用镜像创建并启动一个容器
分配一个文件系统,并在只读的镜像层外面挂载一层可读写层
从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
从地址池配置一个 ip 地址给容器
执行用户指定的应用程序
执行完毕后容器被终止
docker run
-d:就是让Docker在后台运行而不是直接把执行命令的结果输出在当前宿主主机下。
-i:指的是交互
-t:好像是伪命令框
--rm:关闭之后直接删除
docker container log [container id or names]
用来获取容器的输出信息
docker container attach [container id or names]
用来进入一个正在运行的容器
docker container restart [container id or names]
用来重启一个容器
docker export [container id] > [压缩包名字]
docker container prune
用于清理掉所有处于种植状态的容器
docker pull ubuntu:16.04
tihuguanding
docker attach 和 docker exec
前者如果从stdin中exit的话,容器会停止
docker exec从stdin中exec的话,容器不会停止
docker load 和docker import的区别
区别一:
docker load:导入镜像文件到本地镜像库
docker import:从容器快照文件中再导入为镜像
区别二:
docker load:镜像存储文件保存完整记录,体积也大。
docker import:保存的只是当时的状态,体积也小。(从容器快照文件导入时可以重新指定标签等元数据信息。)
ARG和ENV的区别
相同点:都是设置环境变量
不同点:
ARG 所设置的构建环境的环境变量,在将来容器运行时是不会存在这些环境变量的。
12.15日学习笔记
golang模板语法
https://gohugo.io/templates/lookup-order/
1、下载镜像的网址:https://hub.docker.com/explore/
2、下载镜像的格式
docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
具体的选项可以通过 docker pull --help 命令看到,这里我们说一下镜像名称的格式。
Docker 镜像仓库地址:地址的格式一般是 <域名/IP>[:端口号]。默认地址是 Docker Hub。
仓库名:如之前所说,这里的仓库名是两段式名称,即 <用户名>/<软件名>。对于 Docker Hub,如果不给出用户名,则默认为 library,也就是官方镜像。
3、docker run -it --rm
--rm:表示容器退出之后将其删除,可以避免浪费空间
4、常用命令
docker image ls
列出镜像(一个镜像id对应多个tag标签)
docker exec -it [container id] commandName(name)
进入到一个正在运行的容器中
5、利用Dockerfile制作镜像文件
镜像构建时,一定要确保每一层只添加真正需要添加的东西,任何无关的东西都应该清理掉。
--auto-remove
Dockerfile 支持 Shell 类的行尾添加 \ 的命令换行方式
docker build [OPTIONS] PATH | URL | -
制作镜像
Dockerfile内容
https://docs.docker.com/engine/reference/builder/(官方文档)