Docker学习笔记1:入门使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011436666/article/details/76790701

一、Docker简介

Docker (访问官网) 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。(以上信息来源于百度百科)好吧,读完之后,对于初学者来说,没有任何*用,依然不知所云。下面介绍一下Docker中最基本的几个概念,就直接来安装使用一下。

Docker镜像:

Docker镜像(image)类似于虚拟机镜像,可以将它理解为一个面向Docker引擎的只读模板,包含了 文件系统。镜像是创建容器的基础,通过版本管理和增量的文件系统,Docker提供了一套很简单的机制来创建和更新现有镜像,也可以直接从网上下载制作好的镜像, 使用成本很小。

Docker容器:

Docker容器(container)类似于一个轻量级的沙箱,Docker应用容器来使用和隔离应用。容器是从镜像创建的应用运行实例,可以将其启动、开始、停止、删除,而这些容器都是相互隔离、互不可见的。
镜像自身是只读的,容器从镜像启动时, Docker会在镜像的最上层创建一个可写层,镜像本身将不会改变。

Docker仓库:

Docker仓库(repository)类似于代码仓库,是Docker集中存放镜像的场所。注意,注册服务器(registry)并不是一个东西,实际上,注册服务器上存放仓库的地方。

目前,最大的公开仓库是Docker Hub,存放了大量的image供用户下载,国内的有Docker Pool等,可以提供稳定的访问,当然我们也可以创建自己的私有仓库。

二、Docker安装

Docker在Windows、Mac、Linux系统上都提供了相应的支持,可以在这三种平台上安装,这里主要介绍在Linux系统上的安装,使用的是Ubutnu16.04的系统。

1、安装虚拟机和OS

使用虚拟机来产生和我们所用的不一样的系统,笔者使用的是Windows的系统,装上了VMware虚拟机后,在虚拟机里面装上Ubuntu系统,整个过程很简单,在这里不做过多叙述。

注意的是,在安装虚拟机之后,需要我们开启CPU的虚拟化技术。首先要在虚拟机设置中打开如下“虚拟机引擎”中的虚拟化功能,如下所示;然后,还需要在BIOS中enable虚拟化,不同的电脑可能会有不同的BIOS选项。

虚拟机设置

2、在Ubuntu中安装docker

在Linux中安装Docker也不复杂,这里主要参考了Docker官方文档来安装。基本步骤如下:

  1. 卸载旧的版本(如果有的话) apt-get remove docker docker-engine docker.io
  2. 由于Ubutnu系统支持相关的文件系统,这里略过相关的检查(详细信息)。更新软件源:sudo apt-get update
  3. 安装Docker,这里选择的是ce版本的最新版:sudo apt-get install docker-ce,如果报错,可以按照提示更改,如运行apt install docker.io进行安装

安装完成后,运行docker --version,如果正常输出版本信息,则表示安装成功。

3、hello world

按照惯例,我们需要运行一个hello world来检验一下。在终端中输入,docker run hello-world之后,可以看到如下输出:

hello world

这条命令下载了一个image,并在一个container中启动了它,输出信息后又退出了。

三、Docker基础命令使用

Docker支持的命令有很多,任何操作都要通过命令行来完成,可以运行docker run --help来查看支持的所有命令。其输出如下:

Usage:  docker [Options] COMMAND

A self-sufficient runtime for containers

Options:
      --config string      Location of client config files (default
                           "/home/xu/.docker")
  -D, --debug              Enable debug mode
      --help               Print usage
  -H, --host list          Daemon socket(s) to connect to
  -l, --log-level string   Set the logging level

......此处省略大量输出

可以看到命令非常的多,但是也是有规律可循的。下面这张图简单的描述了docker的常用命令。可以看见,主要是容器、镜像、注册服务器之间的互相操作。

docker命令

1、镜像相关命令

获取镜像:

docker pull NAME[:Tag]

这里的意思是从Docker Hub中下载镜像,如果不加Tag,则下载其最新版(latest),如下所示下载了一个叫做selenium/hub的镜像,默认其最新版,注意要在root权限下操作。

docker pull

查看镜像信息:

docker images

其输出信息如下:

REPOSITORY      TAG      IMAGE ID      CREATED     SIZE
#镜像来源的仓库  、标签 、镜像ID(唯一的)、创建时间、  镜像大小

搜索镜像:

docker search  IMAGE_NAME

删除镜像:

docker rmi NAME[:Tag]

需要注意的是,有时使用镜像ID去删除镜像,会提示镜像间有依赖而无法删除。

存出&载入和上传镜像:

存出:docker save -o OUTPUT_NAME.tar image_name
载入:docker load --input tar_name
用docker push命令上传image到仓库。

创建镜像:

镜像的操作里面操作镜像是比较重要的,有3种方式:

  1. 基于已有镜像容器创建
  2. 基于本地模本导入
  3. 基于dockerfile创建

方式2就是上一条命令,存出和载入镜像;用dockerfile文件创建镜像,会涉及到其他的一系列命令;这里我们说一说基于已有容器创建镜像:

我们对已有的镜像操作时,是对其的一个实例容器在进行操作,已Ubuntu为例,我们进如系统中进行操作之后(比如安装了JDK),如果此时用exit命令退出,那么我们测操作并不会被保存下来,而是丢掉了(即下次使用Ubuntu时仍需要我们安装JDK)。

这时我们可以使用docker commit 命令来提交在容器里的操作,以形成新的image。而旧的image我们可以将其删掉以节省空间。常用格式如下:docker commit [-a 作者信息] [-m 提交信息] container_id new_image_name

2、容器相关命令

创建和启动容器:
docker create : 新建的容器处于停止状态,可以使用docker start命令来启动它。
docker run ,相当于先docker create,再docker start启动它,常用的命令格式:docker run -it image_name command,-i 表示让容器的标准输入保持打开,-t 选项让docker分配一个伪终端,并绑定到容器的标准输入上,可以简单的认为-it就是让容器以交互的方式运行。进入容器之后,可以用Ctrl+D或者exit来退出容器。-d 后台运行(守护态)

终止容器:

docker stop container_name

进入容器:
使用-d让容器以守护态运行的时候,无法看到容器中的信息,如果需要进入容器中的话,可以用以下几种方法:

docker attach container_name/id
docker exec -it container_name/id command

删除容器:
docker rm container,-f 强行删除

查看容器状态:
docker ps 查看容器状态,可以添加的选项很多:
-a :显示所有的容器,包括未运行的。
-f :根据条件过滤显示的内容。
–format :指定返回值的模板文件。
-l :显示最近创建的容器。
-n :列出最近创建的n个容器。
–no-trunc :不截断输出。
-q :静默模式,只显示容器编号。
-s :显示总的文件大小。

常用操作命令行如下:
杀死所有容器:docker kill $(docker ps -a -q )
删除所有容器:docker rm -f $(docker ps -a -q)
监控所有容器数量:docker ps -a -q | wc -l
正在运行的容器的数量:docker ps -q | wc -l

猜你喜欢

转载自blog.csdn.net/u011436666/article/details/76790701