Docker基础(安装和测试)

了解了Docker的作用之后,不是很能体会Docker的实际作用。先结合小例子实战一下,才会对Docker容器的真正的理解(主要是和之前运维的工作方式做对比),最后就是将之前goWeb项目部署体会一下。

1.Docker的安装(Centos版本)

1.使用yum安装

执行以下命令安装依赖包:

$ sudo yum install -y yum-utils \
           device-mapper-persistent-data \
           lvm2

鉴于国内网络问题,强烈建议使用国内源,官网源请在注释中查看。

执行下面的命令添加yum软件源:

$ sudo yum-config-manager \
    --add-repo \
    https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo


# 官方源
# $ sudo yum-config-manager \
#     --add-repo \
#     https://download.docker.com/linux/centos/docker-ce.repo

2.安装Docker CE

Docker 是一个开源的商业产品,有两个版本:社区版(Community Edition,缩写为 CE)和企业版(Enterprise Edition,缩写为 EE)。企业版包含了一些收费服务,个人开发者一般用不到。下面的介绍都针对社区版。更新yum软件源缓存,并安装docker-ce

$ sudo yum makecache fast
$ sudo yum install docker-ce

3.验证是否安装成功

安装完成后,运行下面的命令,验证是否安装成功。

$ docker version
# 或者
$ docker info
Docker基础(安装和测试)_第1张图片
image.png

4.配置Docker服务

Docker需要用户具有sudo权限,为了避免每次命令都输入sudo,可以把用户加入Docker用户组(官方文档)。

sudo usermod -aG docker $USER

Docker 是服务器----客户端架构。命令行运行docker命令的时候,需要本机有 Docker 服务。如果这项服务没有启动,可以用下面的命令启动(官方文档)。(如上图所示,Docker daemon没有启动)。

sudo systemctl start docker.service
Docker基础(安装和测试)_第2张图片
image.png

2.Docker项目实例

下面,我们通过最简单的 image 文件"hello world",感受一下 Docker。

需要说明的是,国内连接 Docker 的官方仓库很慢,还会断线,需要将默认仓库改成国内的镜像网站,具体的修改方法在下一篇文章的第一节。有需要的朋友,可以先看一下。首先,运行下面的命令,将image文件从仓库抓取到本地。

$ docker image pull library/hello-world

上面代码中,docker image pull是抓取 image 文件的命令。library/hello-world是 image 文件在仓库里面的位置,其中library是 image 文件所在的组,hello-world是 image 文件的名字。

由于 Docker 官方提供的 image 文件,都放在library组里面,所以它的是默认组,可以省略。因此,上面的命令可以写成下面这样。

$ docker image pull hello-world

抓取成功以后,就可以在本机看到这个image文件了。

$ docker image ls
image.png

现在,运行这个image文件。

$ docker container run hello-world

docker container run命令会从image文件,生成一个正在运行的容器实例。

注意,docker container run命令具有自动抓取 image 文件的功能。如果发现本地没有指定的 image 文件,就会从仓库自动抓取。因此,前面的docker image pull命令并不是必需的步骤。

如果运行成功,你会在屏幕上读到下面的输出。

Docker基础(安装和测试)_第3张图片
image.png

出现这段提示以后,hello world就会停止运行,容器自动终止。(还可以看看Docker容器运行的步骤)。

3.使用Docker镜像

Docker运行容器前需要本地存在对应的镜像,如果镜像没保存在本地,Docker会尝试先从默认镜像仓库下载(默认使用Docker Hub公共注册服务器中的仓库),用户也可以通过配置,使用自定义的镜像仓库。

1.获取镜像

镜像是运行容器的前提。可以直接使用docker pull命令直接从Docker Hub镜像源来下载镜像。

docker pull Name[:Tag]

其中,Name是镜像仓库的名称(用来区分镜像),Tag是镜像标签(往往用来表示版本的信息)。通常情况下,描述一个镜像需要包括“名称+标签”信息。

2.查看镜像

使用docker image命令可以列出本地主机上已有镜像的基本信息。

image.png

在列出的信息中,可以看出一下几个字段信息。

  • REPOSITORY:来自哪个仓库;
  • TAG:镜像的标签信息;
  • IMAGE ID:镜像的ID;
  • CREATED:创建的时间;
  • SIZE:镜像大小,优秀的镜像往往体积都比较小。

其中镜像的ID信息十分重要,它唯一标识了镜像。在使用镜像ID的时候,一般可以使用该ID的前若干个字符组成的区分串替代完整的ID。

使用tag命令添加镜像标签

docker tag hello-world:latest myhello-world:latest
Docker基础(安装和测试)_第4张图片
image.png

使用inspect命令查看详细信息

使用docker inspect命令可以获取该镜像的详细信息,包括制作者、适应架构、各层的数字摘要等

使用history命令查看镜像历史

既然镜像文件由多个层组成,那么怎么知道各个层的内容具体是什么呢?这时候可以使用history子命令,该命令将列出各层的创建信息。

image.png

3.搜索镜像

使用docker search命令可以搜索远端仓库中共享的镜像,默认搜索官方仓库中的镜像。

docker search
    --automated=true|false:仅显示自动创建的镜像,默认为否
    --no-trunc=true|false:输出信息不截断显示,默认为否
    -s,--stars=X:指定仅显示评价为指定星级以上的镜像,默认为0,即输出所有的镜像。

4.删除镜像

使用docker rmi命令可以删除镜像,命令格式为:

docker rmi IMAGE[IMAGE...]
#其中IMAGE可以为标签或ID

当同一个镜像拥有多个标签的时候,docker rmi命令指示删除该镜像多个标签中中的指定标签而已,并不影响镜像文件。

5.创建镜像

创建镜像的方法主要有三种:

1、基于已有镜像容器创建;

该方法使用是使用docker commit命令。命令格式为:

docker commit [OPTIONS] CONTAINER [REPOSITORY [:TAG]]
    -a,--author="":作者信息
    -c,--change=[]:提交的时候执行Dockerfile指令
    -m,--message="":提交信息
    -p,pause=true:提交时暂停容器运行

2、基于本地模板导入;

用户也可以直接从一个操作系统模板文件导入另一镜像,主要使用docker import命令。格式如下:

docker import [OPTIONS] file|URL -[REPOSITORY [:TAG]]

3、基于Dockerfile创建。

下一个博客再讲。

6.存入和载入镜像

用户可以使用docker savedocker load命令来存出和载入镜像。

7.上传镜像

可以使用docker push命令上传镜像到仓库,默认上传到Docker Hub官方仓库。命令格式为:

docker push Name[:Tag] |[REGISTRY_HOST [:REGISTRY_PORT]/]NAME [:TAG]

参考资料

https://yeasy.gitbooks.io/docker_practice/install/centos.html

http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html

https://docs.docker.com/install/linux/docker-ce/centos/#install-using-the-repository

你可能感兴趣的:(Docker基础(安装和测试))