哈哈,标题我抄了雷总的,不重要哦,重要的是 Docker 真的很年轻,虽然现在才不到 8 岁,但却是个冉冉升起的巨星,火得一塌糊涂。
这几年 Docker 实在太火了,Docker 是干嘛的?做 Java 的怎么能不知道 Docker?所以,本篇栈长带大家来做第一个 Docker 应用,你就有个基本认识了。
可能有些人觉得 Docker 和自己没多大关系,自己写好代码就行了,Docker 那是运维用的东西,看完这篇,我想改变你的想法。
一、什么是 Docker?Docker 是现在最主流的开源容器,遵循 Apache 2.0 协议,使用 GO 语言进行开发,始于 2013 年,现已加入 Linux 基金会。
Docker 的核心思想是:"Build once, Run anywhere",即:一次构建,处处运行,这里可以是一个操作系统、一个 Web 应用,或者一个数据库服务等。
我们可以将 Docker 理解为一个轻量级的沙盒,Docker 容器完全使用沙盒机制,每个容器内都有其独立运行的环境和组件,容器之间是相互隔离互不影响的,也可以进行容器间的通信。
Docker 支持所有主流的操作系统,如:Linux/Mac/Windows,所有主流的云服务也支持 Docker,所以,我们可以将应用及依赖、环境信息等打包到一个 Docker 容器中,可以很轻松的实现应用发布、迁移等。
Docker 官网:
https://www.docker.com/
Docker 代码托管:
https://github.com/docker
二、安装 DockerDocker 有社区版、企业版。社区版是开源免费的,企业版是收费的,当然也会有更牛逼的特性和服务,一般的应用社区版的足够了。
Docker 的安装十分简单,栈长这里以 Mac 和 Docker 社区版为例作为安装演示。
打开 Docker 开始页:
https://www.docker.com/get-started
下载 Mac 版 Docker 安装包直接安装即可。
安装完后使用 docker -v 命令进行可以查看 Docker 版本:
$ docker -v Docker version 19.03.13, build 4484c46d9d、使用 docker version 还可以看到完整版本信息:
docker version Client: Docker Engine - Community Cloud integration 0.1.18 Version: 19.03.13 API version: 1.40 Go version: go1.13.15 Git commit: 4484c46d9d Built: Wed Sep 16 16:58:31 2020 OS/Arch: darwin/amd64 Experimental: false Server: Docker Engine - Community Engine: Version: 19.03.13 API version: 1.40 (minimum version 1.12) Go version: go1.13.15 Git commit: 4484c46d9d Built: Wed Sep 16 17:07:04 2020 OS/Arch: linux/amd64 Experimental: false containerd: Version: v1.3.7 GitCommit: 8fba4e9a7d01810a393d5d25a3621dc101981175 runc: Version: 1.0.0-rc10 GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd docker-init: Version: 0.18.0 GitCommit: fec3683看到 Docker 版本信息表示安装成功了。
三、启动 DockerMac 版本的 Docker 只要点击应用图标进入就自动启动了,也可以设置开机自动启动。
Mac 版 Docker 官方就自带了控制台客户端,通过 Dashboard 菜单进入。
通过控制台可以进行容器、镜像的管理、设置等。
总之 Docker 的安装和启动都非常简单,不同的系统环境都可以轻松完成。
四、第一个 Docker 应用熟悉 Tomcat 的朋友都知道,Tomcat 安装后 Webapp 下面会自带一些 Web 项目。关于 Tomcat 系列教程可以关注公众号Java技术栈搜索阅读。
Docker 也是如此,Docker 安装完后也会自带一些镜像,可以在控制台中看到,也可以使用docker images 命令查看本地所有 Docker 镜像。
如下图所示,切换到 Images:
Docker 自带了一个 docker tutorial 镜像,这是一个学习 Docker 的向导镜像,本身是一个 Web 应用的镜像,怎么把它启动起来呢?镜像只是一个只读的静态文件,不能运行,容器才是镜像的运行实例,所以需要新增一个容器来运行。
客户端运行最简单的方法是点击该镜像右边的运行按钮:
在上面的对话框中填写容器的必要信息,如这里容器的端口和映射本机的端口都是 80,最后点击运行按钮。