Docker 是世界领先的软件容器平台。
- 开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作”的问题。
- 运维人员利用Docker 可以在隔离容器中并行运行和管理应用,获得更好的计算密度。
- 利用 Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为 Linux 和 Windows Server 应用发布新功能。
Docker 英文官网:https://www.docker.com
Docker中文官网:https://www.docker-cn.com
有了容器,就可以将软件运行所需的所有资源打包到一个隔离的容器中。容器与虚拟机不同,不需要捆绑一整套操作系统,只需要软件工作所需的库资源和设置。系统因此而变得高效、轻量、自给自足,还能保证部署在任何环境中的软件都能始终如一地运行。
Docker | 面向对象 |
---|---|
容器 | 对象 |
镜像 | 类 |
名词 | 解释 |
---|---|
Docker 镜像(Images) | Docker 镜像是用于创建 Docker 容器的模板。 |
Docker 容器(Container) | 容器是独立运行的一个或一组应用。 |
Docker 客户端(Client) | Docker 客户端通过命令行或者其他工具使用 Docker API 与 Docker 的守护进程通信。 |
Docker 主机(Host) | 一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。 |
Docker 仓库(Registry) | Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。Docker Hub(https://hub.docker.com) 提供了庞大的镜像集合供使用。 |
Docker Machine | Docker Machine是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure。 |
Docker一共有两个版本,一个是社区版,一个是企业版。
功能对比如下:
功能 | 社区版 | 企业版 |
---|---|---|
基于containerd的最新Docker引擎 | 支持 | 支持 |
认证的Kubernetes | 支持 | 支持 |
适用于Windows 10和macOS | 支持 | 支持 |
以任何语言或框架开发,甚至同时开发多个版本 | 支持 | 支持 |
开发人员和生产人员共享相同的界面和命令 | 支持 | 支持 |
Application Designer界面简化了Docker应用程序的创建和开发 | 不支持 | 支持 |
选择Docker Engine和Kubernetes版本以匹配Docker Enterprise | 不支持 | 支持 |
使用标准MSI / PKG软件包维护和分发各个团队 | 不支持 | 支持 |
可选配置限制 | 不支持 | 支持 |
可定制的应用程序模板 | 不支持 | 支持 |
技术支持SLA | 不支持 | 支持 |
社区版免费,企业版收费,企业版和社区版相比自然功能更多。
社区版也分为两个版本,一个是稳定版本,一个是尝鲜版本。
需要 Microsoft Windows 10 旗舰版 或者企业版 64-bit
注册登录地址:https://www.docker.com/
如果想要使用Docker 最好安装一个linux环境,而作为开发用途来讲,最出名常用的莫过于Centos 了。
所以在安装Docker 社区版之前,我们首先需要搭建一个Linux环境,
如果没有安装,请参考 VMWare Workstation虚拟机安装Centos7 图文指南
安装Docker 社区版有三种方式:
Tips:接下来我们将会使用第一种方式安装
首次在新主机上安装Docker CE之前,需要设置Docker存储库。 之后,您可以从存储库安装和更新Docker。
yum-utils提供yum-config-manager实用程序,devicemapper存储驱动程序需要device-mapper-persistent-data和lvm2。
安装命令如下所示:
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
通过以下命令设置稳定的存储库。 即使您想从dege或测试存储库安装构建,也总是需要稳定的存储库。
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
Tips: 这个仓库里面有官方Demo
启用edge 并测试存储库。 这些存储库包含在上面的docker.repo文件中,但默认情况下处于禁用状态。 您可以将它们与稳定的存储库一起启用。
sudo yum-config-manager --enable docker-ce-edge
sudo yum-config-manager --enable docker-ce-test
通过使用–disable标志运行yum-config-manager命令,可以禁用edge 或test 存储库。
要重新启用它,请使用–enable标志。
使用如下命令禁用Edge存储库
sudo yum-config-manager --disable docker-ce-edge
安装最新版本的Docker 社区版本使用如下命令
sudo yum install docker-ce
出现所有的提示y/n? 输入y 按下回车
可以先列出仓库中所有可用的版本,然后选择并安装:
此示例按版本号排序结果,从最高到最低排序,并被截断:
yum list docker-ce --showduplicates | sort -r
安装特定版本命令如下
sudo yum install docker-ce-
Docker已安装但未启动。 docker组已创建,但没有用户添加到组中。
启动Docker 服务使用如下命令:
sudo systemctl start docker
Tips: 停止Docker 容器服务,可使用
sudo systemctl stop docker
输入命令
docker version
看到如下回显说明安装Docker 成功
Tips: 也可以使用另外一个docker info 命令来测试,和docker version 一样的效果
在做下列命令前需要确保docker服务是启动的,即下面命令必须先执行
启动Docker 服务命令:sudo systemctl start docker
docker pull medicean/vulapps:s_struts2_s2-045
启动容器环境输入如下命令:
docker run -d -p 80:8080 medicean/vulapps:s_struts2_s2-045
Tips: -p 80:8080 前面的 80 代表物理机的端口,可随意指定。
执行完成后我们查看下虚拟机中Linux的IP地址
如果不知道怎么查看请移步 转:Linux 如何查看本机IP地址
在我们外部的windows 计算机中输入IP地址
比如我的Linux地址:http://192.168.233.129/
列出当前正在运行的容器
docker container ls
Tips:我们记录下这个Container id 即容器ID,待会停止容器和移除容器都要用到
如果我们想要停止我们的容器,那么执行下面命令
docker container stop 8bc8d5cabdd0
终止运行的容器文件,依然会占据硬盘空间,可以使用docker container rm命令删除。
docker container rm [containerID]
执行移除容器命令
docker container rm 8bc8d5cabdd0
如果需要卸载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