Docker 相信在飞速发展的今天已经越来越火,它已成为如今各大企业都争相使用的技术。那么Docker 是什么呢?为什么这么多人开始使用Docker?

本节课我们将一起解开Docker的神秘面纱。

本文目录:

1.什么是Docker?

2.Docker 的用途有哪些?

3.Docker 如何安装?

VMWare Workstation 安装Centos7 图文教程

3.1 安装Docker 仓库

3.2 安装Docker社区版

3.3 启动Docker 服务

3.4 验证Docker 安装

4. 如何获取并运行一个Docker 容器Demo?

4.1 拉取一个镜像到本地

4.2 启动容器Demo

4.3 列出当前正在运行的容器

4.4 停止正在运行的容器

4.5 移除某个容器

5. 如何卸载Docker?

6. 参考博文推荐

1. 什么是Docker?

做软件开发的相信大家都知道,一个软件要想成功运行,必须满足一定的运行环境,即 兼容的操作系统 + 各种软件库和运行环境的配置。

举个例子,比如我们开发了一款Java 应用程序,那么我们必须有这些运行环境:

一个操作系统 (windows/Mac OSX/Linux) + JRE(Windows JRE/Mac OSX JRE/Linux JRE)

然而当我们开发的应用程序越来越复杂时,各种软件运行环境的配置就成为了一件非常繁琐的事情。

为了解决这一环境配置的难题,Docker 将应用程序与该程序的依赖,打包在一个文件里面。

运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。

总体来说,Docker 的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。

Docker是目前最流行的 Linux 容器解决方案。

Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。

Docker 官网:https://www.docker.com/

2. Docker 用途有哪些?

Docker 的主要用途,目前有三大类。

  1. 提供一次性的环境。比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境。
  2. 提供弹性的云服务。因为 Docker 容器可以随开随关,很适合动态扩容和缩容。
  3. 组建微服务架构。通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构。

3. Docker如何安装?

Docker 是一个开源的商业产品,有两个版本:社区版(Community Edition,缩写为 CE)和企业版(Enterprise Edition,缩写为 EE)。

企业版包含了一些收费服务,个人开发者一般用不到。下面的介绍都针对社区版。

Docker CE 的安装请参考官方文档。

如果想要使用Docker 最好安装一个linux环境,而作为开发用途来讲,最出名常用的莫过于Centos 了。

所以在安装Docker 社区版之前,我们首先需要搭建一个Linux环境,请参考 VMWare Workstation虚拟机 安装Centos7 图文指南

3.1. 选择安装方式

安装Docker 社区版有三种方式:

  1. 安装Docker 仓库 镜像安装(大多数人使用这种方式,我们也推荐使用这种)
  2. 下载RPM安装包手动安装
  3. 使用便捷的脚本安装

Tips:接下来我们将会使用第一种方式安装

首次在新主机上安装Docker CE之前,需要设置Docker存储库。 之后,您可以从存储库安装和更新Docker。

3.2 安装Docker 仓库

  • 安装之前请Linux 必须是联网状态
  • 执行命令必须拥有root 权限

3.2.1 安装必要的包

yum-utils提供yum-config-manager实用程序,devicemapper存储驱动程序需要device-mapper-persistent-data和lvm2。

安装命令如下所示:

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

3.2.2 设置稳定的存储库

通过以下命令设置稳定的存储库。 即使您想从dege或测试存储库安装构建,也总是需要稳定的存储库。

Tips: 这个仓库里面有官方Demo

sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

3.2.3 可选项

启用edge 并测试存储库。 这些存储库包含在上面的docker.repo文件中,但默认情况下处于禁用状态。 您可以将它们与稳定的存储库一起启用。

启用edge

sudo yum-config-manager --enable docker-ce-edge

启用test 测试仓库

sudo yum-config-manager --enable docker-ce-test

通过使用--disable标志运行yum-config-manager命令,可以禁用edge 或test 存储库。 要重新启用它,请使用--enable标志。 以下命令禁用edge存储库。

sudo yum-config-manager --disable docker-ce-edge

3.3 安装Docker 社区版

安装最新版本的Docker 社区版本使用如下命令

sudo yum install docker-ce

出现所有的提示y/n? 输入y 按下回车

要安装特定版本的Docker CE,可以先列出仓库中所有可用的版本,然后选择并安装:

此示例按版本号排序结果,从最高到最低排序,并被截断:

yum list docker-ce --showduplicates | sort -r

命令回显如下所示

安装特定版本命令如下

 sudo yum install docker-ce-<VERSION STRING>

Docker已安装但未启动。 docker组已创建,但没有用户添加到组中。

3.4 启动docker服务

sudo systemctl start docker

Tips: 停止Docker 容器服务,可使用 sudo systemctl stop docker

3.5 验证Docker 是否正确安装

输入命令

docker version

看到如下回显说明安装Docker 成功

Tips: 也可以使用另外一个docker info 命令来测试,和docker version 一样的效果

4. 如何获取并运行一个Docker 容器Demo?

在做下列命令前需要确保docker服务是启动的,即下面命令必须先执行

sudo systemctl start docker

4.1 拉取镜像到本地

docker pull medicean/vulapps:s_struts2_s2-

4.2 启动容器环境

docker run -d -p : medicean/vulapps:s_struts2_s2-

Tips: -p 80:8080 前面的 80 代表物理机的端口,可随意指定。

执行完成后我们查看下虚拟机中Linux的IP地址 ,如果不知道怎么查看请移步 转: Linux 如何查看本机IP地址

在我们外部的windows 计算机中输入IP地址:http://192.168.233.129/

看到如下界面说明访问成功

4.3 列出当前正在运行的容器

docker container ls

执行后如下图所示:

Tips:我们记录下这个Container id 即容器ID,待会停止容器和移除容器都要用到

4.4 停止当前正在运行的容器

如果我们想要停止我们的容器,那么执行下面命令

docker container stop 8bc8d5cabdd0

4.5 移除某一个容器

终止运行的容器文件,依然会占据硬盘空间,可以使用docker container rm命令删除。

docker container rm [containerID]

执行移除容器命令
docker container rm 8bc8d5cabdd0
执行效果如下图所示:

5. 如何卸载Docker ?

如果需要卸载Docker ,卸载命令如下所示:

sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine

6. 参考博文推荐

Docker 入门教程

Docker 微服务教程

揭开Docker的神秘面纱的更多相关文章

  1. ASP.NET 运行时详解 揭开请求过程神秘面纱

    对于ASP.NET开发,排在前五的话题离不开请求生命周期.像什么Cache.身份认证.Role管理.Routing映射,微软到底在请求过程中干了哪些隐秘的事,现在是时候揭晓了.抛开乌云见晴天,接下来就 ...

  2. 带你揭开ATM的神秘面纱

    相信大家都用过ATM取过money吧,但是有多少人真正是了解ATM的呢?相信除了ATM从业者外了解的人寥寥无几吧,鄙人作为一个从事ATM软件开发的伪专业人士就站在我的角度为大家揭开ATM的神秘面纱吧. ...

  3. 揭开Future的神秘面纱——结果获取

    前言 在前面的两篇博文中,已经介绍利用FutureTask任务的执行流程,以及利用其实现的cancel方法取消任务的情况.本篇就来介绍下,线程任务的结果获取. 系列目录 揭开Future的神秘面纱—— ...

  4. 揭开Future的神秘面纱——任务执行

    前言 此文承接之前的博文 解开Future的神秘面纱之取消任务 补充一些任务执行的一些细节,并从全局介绍程序的运行情况. 系列目录 揭开Future的神秘面纱——任务取消 揭开Future的神秘面纱— ...

  5. 揭开Future的神秘面纱——任务取消

    系列目录: 揭开Future的神秘面纱——任务取消 揭开Future的神秘面纱——任务执行 揭开Future的神秘面纱——结果获取 使用案例 在之前写过的一篇随笔中已经提到了Future的应用场景和特 ...

  6. SparkSQL大数据实战:揭开Join的神秘面纱

    本文来自 网易云社区 . Join操作是数据库和大数据计算中的高级特性,大多数场景都需要进行复杂的Join操作,本文从原理层面介绍了SparkSQL支持的常见Join算法及其适用场景. Join背景介 ...

  7. 揭开HTTPS的神秘面纱

    摘自:https://www.cnblogs.com/hujingnb/p/11789728.html 揭开HTTPS的神秘面纱   在说HTTP前,一定要先介绍一下HTTP,这家伙应该不用过多说明了 ...

  8. 从一个Demo开始,揭开Netty的神秘面纱

    本文是Netty系列第5篇 上一篇文章我们对于I/O多路复用.Java NIO包 和 Netty 的关系有了全面的认识. 到目前为止,我们已经从I/O模型出发,逐步接触到了Netty框架.这个过程中, ...

  9. 揭开Redis的神秘面纱

    本篇博文将为你解开Redis的神秘面纱,通过阅读本篇博文你将了解到以下内容: 什么是Redis? 为什么选择 Redis? 什么场景下用Redis? Redis 支持哪些语言? Redis下载 Red ...

随机推荐

  1. P1019 单词接龙 字符串回溯

    题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合 ...

  2. Unity Standard Assets Example Project

    参考链接:http://blog.csdn.net/jaikydota163/article/details/52751976

  3. django基类View.as_view()

    参考:https://www.zmrenwu.com/post/53/ 详细见参考 一般请求的判断方法: def view(request, *args, **kwargs): if request. ...

  4. POJ 2446 Chessboard【二分图最大匹配】

    <题目链接> 题目大意: 给你一个n*m的棋盘,其中有k个洞,现在有1*2大小的纸片,纸片不能覆盖洞,并且每个格子最多只能被覆盖一次.问你除了洞口之外这个棋盘是否能被纸片填满. 解题分析: ...

  5. python的time模块总结

    python的time模块与random模块 目录 time模块 time模块 三种时间表示 在Python中,通常有这几种方式来表示时间: 时间戳(timestamp) : 通常来说,时间戳表示的是 ...

  6. Java定时线程池停止超时任务

    一.背景题主最近遇到一个问题,本来通过ScheduledExecutorService线程池定时调度一个任务.奈何不知道为啥跑了2个多月,其中一个任务Hang住了,原本定时的任务则出现了问题. 关于定 ...

  7. [HihoCoder1378]网络流二·最大流最小割定理

    思路: 根据最大流最小割定理可得最大流与最小割相等,所以可以先跑一遍EdmondsKarp算法.接下来要求的是经过最小割切割后的图中$S$所属的点集.本来的思路是用并查集处理所有前向边构成的残量网络, ...

  8. 95. 不同的二叉搜索树 II

    95. 不同的二叉搜索树 II 题意 给定一个整数 n,生成所有由 1 ... n 为节点所组成的二叉搜索树. 解题思路 这道题目是基于不同的二叉搜索树进行改进的: 对于连续整数序列[left, ri ...

  9. DragonBones的下载和安装

    DragonBones也称龙骨,是一款骨骼动画制作软件.DragonBones Pro是由Flash的龙骨骨骼动画插件进化而来的,与传统逐帧动画相比,骨骼动画资源较小且动画效果比较好. DragonB ...

  10. Charles抓包http和https

    本来不打算写的,度娘一搜一大堆各种教程,实在是网上的各种设置的各种坑都有,我还是站在巨人的肩膀上汇总一下吧 首先http的就不用说了,各种教程版本区别不大,也没什么坑,主要是https: 第一步先下载 ...