Docker入门学习(3)----Docker架构与常用命令总结
2017-12-10 19:27
1146 查看
1、Docker架构详解
首先我们要知道,Docker是使用的是客户端服务器架构,其实我们从docker version这个命令也可以看出来:
root@ubuntu:~# docker version Client: Version: 1.13.1 API version: 1.26 Go version: go1.8.3 Git commit: 092cba3 Built: Thu Oct 12 22:34:44 2017 OS/Arch: linux/amd64 Server: Version: 1.13.1 API version: 1.26 (minimum version 1.12) Go version: go1.8.3 Git commit: 092cba3 Built: Thu Oct 12 22:34:44 2017 OS/Arch: linux/amd64 Experimental: false
如上所示:结果代码中分为客户端和服务器端
我们看一下之前的上面的那一张docker架构图,里面Client就是我们所说的客户端了,DOCKER_HOST其实就可以说成服务器端,在host之中,有一个docker daemon是docker的守护进程。最右边的Registry就是一个网上的共有镜像仓库,比如我们说的Docker hub。
Docker客户端和Docker守护进程交流,Docker守护进程做非常重要的工作,构建,运行和分发你的Docker容器。Docker客户端和守护进程可以运行在同样的系统上,或者是你可以连接一个Docker客户端到一个远程Docker守护进程中。Docker客户端和守护进程通过sockets或通过RESTful API进行沟通交流。
我们再来看一下这三个概念:
==Docker镜像==
一个Docker镜像是一个只读的模板。例如,一个镜像可以包含一个带有Apache和你的web应用的Ubuntu操作系统。镜像被用来创建Docker容器。Docker提供了一个简单的方式来构建一个新的镜像或更新一个存在的镜像,或者是你可以下载其他人已经创建的Docker镜像。Docker镜像是Docker的build组件。
==Docker注册处==
Docker注册处保留镜像。这些是来自于上传或下载镜像的公共或私密存储的地方。公共的Docker注册处又Docker Hub提供。他提供了一个你可以使用的已存镜像的集合。这些可以是你自己创建的或其他人创建的你可以使用的镜像。Docker注册处是Docker的distribution组件。
==Docker容器==
Docker容器和目录是相似的。一个Docker容器可以保存任何东西,这些东西是运行一个应用程序所必须的。每一个容器都是从一个Docker镜像中创建的。Docker容器可以被运行,开启,停止,移动和删除。每一个容器都是一个分离的和安全的应用平台。Docker容器是Docker的运行组件。
在了解了以上概念之后,我们通过具体的命令来查看Docker架构这个抽象的概念。
2、一些常用命令
<1.>docker search 命令 + 镜像名字,来查看官方镜像仓库中的镜像例如:
<2.>docker pull + 镜像名字,拉取镜像
例如:
docker pull ubuntu:16.04 //拉取ubuntu 16.04版本的镜像
<3.>docker images查看当前拉取的所有镜像
<4.>docker run 命令 启动容器
启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态( stopped )的容器重新启动。
因为 Docker 的容器实在太轻量级了,很多时候用户都是随时删除和新创建容器。
新建并运行容器:
例如,下面的命令输出一个 “Hello World”,之后终止容器。
$ docker run ubuntu:14.04 /bin/echo 'Hello world' Hello world
这跟在本地直接执行 /bin/echo ‘hello world’ 几乎感觉不出任何区别。
下面的命令则启动一个 bash 终端,允许用户进行交互。
$ docker run -t -i ubuntu:14.04 /bin/bash root@af8bae53bdd3:/#
其中, -t 选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上, -i
则让容器的标准输入保持打开。
在交互模式下,用户可以通过所创建的终端来输入命令,例如:
root@af8bae53bdd3:/# pwd / root@af8bae53bdd3:/# ls bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
让容器后台运行:-d参数
docker run -d nginx
我们进入容器可以使用exec参数:
root@ubuntu:~# docker run -d nginx d41c5b18b6b8c03bc680e2c420e7ec53ed5a526fca2b0e3df7da411dea1f7a38 root@ubuntu:~# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d41c5b18b6b8 nginx "nginx -g 'daemon ..." 5 seconds ago Up 3 seconds 80/tcp inspiring_jennings root@ubuntu:~# docker exec -it d4 bash root@d41c5b18b6b8:/# ls bin dev home lib64 mnt proc run srv tmp var boot etc lib media opt root sbin sys usr
<5.>docker ps 或者docker container ls 来查看正在运行的容器信息:
root@ubuntu:~# docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES efebe0da3df1 nginx "nginx -g 'daemon ..." 3 hours ago Up 3 hours 0.0.0.0:8080->80/tcp dazzling_tesla root@ubuntu:~# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES efebe0da3df1 nginx "nginx -g 'daemon ..." 3 hours ago Up 3 hours 0.0.0.0:8080->80/tcp dazzling_tesla
<6.>终止容器:
docker container stop 容器id
<7.>查看终止状态的容器信息
docker ps -a或者docker container ls -a
<8.>启动终止的容器,重启正在运行的容器:
docker container start docker container restart
相关文章推荐
- Docker学习总结(9)——Docker常用命令
- Docker新手入门之九:Docker常用命令总结
- Docker 入门学习笔记二:常用命令
- docker学习总结之常用命令
- Apache Ant学习总结(一):Ant自动化脚本入门以及一些常用命令介绍
- Docker学习总结(9)——Docker常用命令
- Docker学习之常用的基础命令总结
- ollydbg入门学习及常用命令
- 【Linux入门学习之】Linux关机命令总结
- Linux Shell 常用命令与目录分区的学习总结 (开始学习linux)
- MQ命令学习总结大全MQ常用命令
- Linux Shell 常用命令与目录分区的学习总结
- Linux Shell 常用命令与目录分区的学习总结
- selenium学习总结之常用命令篇
- 常用linux命令学习总结
- 批处理学习总结之常用命令1
- Linux Shell 常用命令与目录分区的学习总结
- Linux Shell 常用命令与目录分区的学习总结
- Linux Shell 常用命令与目录分区的学习总结
- linux学习入门5——linux系統常用命令(linuxcast.net)(日期、文件查看(head,tail等)、查看硬件信息、关机重启、归档压缩及查找命令)