标签:查看 调试 r文件 ubunt 交互式 hello 客户端 进入容器 镜像操作
Docker是一个开源的应用容器引擎,基于Go语言,并遵从Apache2.0协议开源。
Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。
Docker容器是完全使用沙箱机制,相互之间不会有任何接口,相比于虚拟机,容器启动速度快,性能开销极低。
首先介绍下Docker的架构,可以由下图表示,主要由Clients、Hosts、Registries组成,下面提到了几个专有名词,我来一个个单独介绍:
Docker镜像,用于创建 Docker 容器的模板。可以看成Java里面的Class类。
独立运行的一个或者一组容器。启动Images后会生成Container,因此可以看成Java里面类的实例化对象。一个Image可以启动多次生成多个Container。
Docker 客户端,使用 Docker Api与 Docker 的守护进程通信。一般在桌面开发中,Client和下面介绍到的Host都在同一个客户端中,使我们感觉Client和Host是在一起的,其实原理是上单独的两个模块。
Docker 主机,一个物理或者虚拟的机器,用于执行 Docker 守护进程和容器。
Docker仓库,用来保存镜像。官方的Docker镜像是 https://hub.docker.com/ ,注册后可以在这里存放你自己的Image。
docker-machine就是帮助你快速去创建安装docker环境的工具,当我们需要在很多台Server上安装Docker环境时,我们可以使用Machine进行安装。
日常工作中,用到的最多的Docker操作如下,主要包含:
接下来进行Docker的实际安装与操作。
Docker官方在这里 https://docs.docker.com/install 给出了详细的安装流程,直接按照步骤一步步安装,一般不会有什么问题。
注意:在Ubuntu系统上进行安装时,推荐使用
Install using the repository
的方式安装,否则直接使用安装包安装会出现很多依赖问题。
Docker安装好了以后,我们可以运行
docker run hello-world
来启动我们的第一个docker容器,正常情况下,docker会从远端仓库下载好hello-world以后直接启动。
Docker的操作主要包括两类,一类是对Image镜像的操作,另一类是对Container容器的操作。
首先通过下图再次认识一下容器与镜像的关系,简单来讲,镜像类似Class类,容器类似new对象。另外镜像类似于Class类,也有继承的关系,也就是说一个镜像可以基于另一个镜像,增加自己的新的功能和需求,这点在后续的制作Docker镜像和Docker文件结构中会详细讲到。
以下是主要的镜像操作,
docker [images|rmi|tag|build|history|save|load]
相比于对镜像的操作,对于容器的操作更多,
docker [run|start|stop|restart|kill|rm|pause|unpause]
docker [ps|inspect|exec|logs|export|import]
以上给出了容器和镜像的基本操作,一般情况下,开发比较常见的是下面三个,
docker run -d --name myhello-world hello-world
注意到-d
参数是后台运行,--name
指定容器的名称.
同时在运行时可以绑定容器端口,比如启动nginx容器的时候,可以将nginx的80端口绑定到本机的8080端口。
docker run -d -p 8080:80 --name nginx nginx:latest
docker exec -it nginx /bin/bash
-it
交互式的启动bash,这个在后面会经常用到,因为经常会进入容器进行调试。
这一节主要介绍了Docker的基本架构和操作,后续会介绍Docker的文件结构和Docker的制作。
本文由『后端精进之路』原创,首发于博客 http://teckee.github.io/ , 转载请注明出处
搜索『后端精进之路』关注公众号,立刻获取最新文章和价值2000元的BATJ精品面试课程。
标签:查看 调试 r文件 ubunt 交互式 hello 客户端 进入容器 镜像操作
原文地址:https://www.cnblogs.com/way2backend/p/11992646.html