docker杂谈

Docker 项目的目标是实现快速轻量级的操作系统虚拟化解决方案。容器是在操作系统层面实现虚拟化,直接复用本地主机的操作系统,而传统虚拟机则是在硬件层面实现。
Docker的生命周期包含三个部分,镜像,容器,仓库,我们可以把镜像,容器想像成java的类和对象,即容器是由镜像实例化而来的。也就是说我们想使用装有相关软件的镜像,首先要把镜像创建成容器。

使用docker run命令已经创建一个docker容器,我们先来解释一下刚才那条命令:

docker run i docker.cn/docker/centos:centos6 /bin/bash

docker run:将镜像实例化成一个容器,有点像java中的new。

docker run的两个参数:

 -i参数: 是以交互模式启动容器

 -t参数: 分配一个tty终端

后面还跟了一条命令 /bin/bash,指要在容器中运行的命令

其实docker容器中运行的进程实际上就是宿主机上的进程。docker实际上使用了命名空间(namespace)来对进程进行隔离,使不同namespace的进程彼此不可见,同时使用cgroup来对彼此隔离的进程的资源进行限制,docker的容器(container)其实就是一个进程的容器,而并不是一个全虚拟化的操作系统,所以他不会有什么init进程。docker将进程、进程所需要的操作系统、运行环境称为容器。所以它比传统的基于hypervisor的虚拟机拥有更高的效率,并使用更低的资源。它实际上是一个内核级别的虚拟化技术,容器还是在使用宿主机的内核。

.什么是镜像仓库

很简单:它就是一个存储和共享镜像文件的地方。

docker pull : 从镜像仓库中拉取或者更新指定镜像

因为国情的原因,国内下载 Docker HUB 官方的相关镜像比较慢,可以使用 docker.cn 镜像,镜像保持和官方一致,关键是速度块,推荐使用。

docker基础用法:

Search images

$ sudo docker search ubuntu

Pull images

$ sudo docker pull ubuntu  # 获取 ubuntu 官方镜像 
$ sudo docker images # 查看当前镜像列表 

Running an interactive shell

$ sudo docker run -it ubuntu:14.04 /bin/bash
  • docker run - 运行一个容器
  • -t - 分配一个(伪)tty (link is external)
  • -i - 交互模式 (so we can interact with it)
  • ubuntu:14.04 - 使用 ubuntu 基础镜像 14.04
  • /bin/bash - 运行命令 bash shell

注: ubuntu 会有多个版本,通过指定 tag 来启动特定的版本 [image]:[tag]

 
   
退出交互模式:
ctrl+d
$ sudo docker ps # 查看当前运行的容器, ps -a 列出当前系统所有的容器 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
6c9129e9df10        ubuntu:14.04        /bin/bash 6 minutes ago       Up 6 minutes                            cranky_babbage

docker杂谈

为镜像添加tag:

下面是tag一个id为0e5574283393的本地镜像到“fedora”存储库,tag名称version1.0:

docker tag 0e5574283393 fedora/httpd:version1.0
或者docker tag 0e5574283393 version1.0


docker查看所有image:
docker images
docker查看所有容器:
docker ps -a

docker build :  使用Dockerfile创建镜像。

猜你喜欢

转载自blog.csdn.net/steven_one7/article/details/80049755