Docker 初识
Posted sunnypoem
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker 初识相关的知识,希望对你有一定的参考价值。
参考:
https://www.cnblogs.com/SzeCheng/p/6822905.html
https://blog.csdn.net/yugongpeng_blog/article/details/43022769
https://blog.csdn.net/taiyangdao/article/details/71718805
Docker简介
Docker是一个能够把开发的应用程序自动部署到容器的开源引擎。使用Docker,开发人员只需关心容器中运行的应用程序,而运维人员只需要关心如何管理容器。Docker设计的目的就是要加强开发人员写代码的开发环境与应用程序要部署的生成环境的一致性。
由于客居于操作系统,容器只能运行在与顶层宿主机相同或相似的操作系统。yu
简单说就是,开发环境打包成镜像,可以搬移到任何支持Docker的环境,然后运行。
图来源:https://www.cnblogs.com/SzeCheng/p/6822905.html
Docker组件
核心组件:
Docker客户端和服务器(Docker引擎)、Docker镜像、Registry、Docker容器。
Docker的技术组件:
一个原生的Linux容器格式(libcontainer);
Linux的namespace,用于隔离文件系统、进程和网络;
资源隔离和分组:使用cgroups将CPU和内存之类的资源独立分配给每个Docker容器;
写时复制
日志
交互式shelll
一个Dockerfile
FROM alpine_bash:latest MAINTAINER sp RUN echo hello CMD echo world |
为什么加载一个OS基础镜像?https://blog.csdn.net/yugongpeng_blog/article/details/43022769
Container内需不需要OS?
Container不是一个VM技术,所以和OS没有关系。如果我没有理解错,这个Container应该指的是Docker Run出的运行环境,因为在里面我们可以运行一些命令,让使用者以为它就是一个完整的OS环境。这是不对的。其实Docker只是一个进程。当你使用docker exec登录进去的也只是一个Terminal的模拟环境。它不是真实的OS。正因为它不是OS,所以它是直接调用主机的Kernel的。而Container本身只是一个系统进程。
为何需要OS的基础镜像?
首先,OS的问题上面已经解释过了,它不是一个OS,但为何需要OS的基础镜像?其实这里的基础镜像是一个包含rootfs的镜像。Kernel启动后是需要把启动文件解压到rootfs上的,然后kernel找到init文件启动就可以得到一个Linux环境了,Docker做的事情就是模拟这个过程,让kernel给出一个独立的隔离环境。
docker build 构建镜像
sudo docker build -t qt:v1 /home/sp/dockertest/ |
查看
sudo docker images qt REPOSITORY TAG IMAGE ID CREATED SIZE qt v1 aaec4961ec31 2 minutes ago 19.83 MB
|
查看镜像如何构建出来的
sudo docker history qt:v1 IMAGE CREATED CREATED BY SIZE COMMENT aaec4961ec31 11 minutes ago /bin/sh -c #(nop) CMD ["/bin/sh" "-c" "echo 0 B 1f10b0c38e9a 11 minutes ago /bin/sh -c echo hello 0 B b00f1a7fc4a7 11 minutes ago /bin/sh -c #(nop) MAINTAINER sp 0 B 91370d5da095 3 months ago bash 182 B 090950687196 3 months ago bash 267 B 62fc0977df76 3 months ago sh 9.032 MB a0f29218fb23 3 months ago sh 42.86 kB c3447930f3bc 3 months ago sh 6.606 MB <missing> 3 months ago 4.144 MB Imported from -
|
docker save 保存镜像
sudo docker save -o /home/sp/dockertest/qt_pack.tar qt:v1 |
docker rmi 删除镜像
sudo docker rmi qt |
docker run 运行容器
sudo docker run -i -t --name=qttest qt:v1 |
docker exec 在容器内部运行进程
docker top 查看容器内的进程
docker stats 查看容器统计信息
Docker 命令&参数
build构建命令参数
转自:https://blog.csdn.net/taiyangdao/article/details/71718805
docker build命令用于根据给定的Dockerfile和上下文以构建Docker镜像。 docker build命令的使用格式: docker build - < Dockerfile 说明:该构建过程只有Dockerfile,没有上下文 docker build - < context.tar.gz 说明:其中Dockerfile位于context.tar.gz的根路径 docker build -t champagne/bbauto:latest -t champagne/bbauto:v2.1 . docker build -f dockerfiles/Dockerfile.debug -t myapp_debug .
|
以上是关于Docker 初识的主要内容,如果未能解决你的问题,请参考以下文章