Docker安装和简单使用

一. 什么是Docker

Docker是在linux服务器上运行的轻量级容器引擎。相较于传统的虚拟机,docker最大的特点就是容器本身耗费的额外资源极少。

二. 什么场景适合使用Docker

  1. 快速安装中间件
    作为工程师,开发部署的时候经常需要安装一些中间件,如redis、nginx、jenkins等。传统方式下安装这些中间件往往还需要安装一些其他的依赖程序,有时候依赖程序的版本还容易出冲突,总之是个很繁琐的事情。
    不过,现在各大中间件厂商,基本都会推出docker版的镜像。使用docker启动这些容器就非常简单粗暴无脑。
  2. 解决测试环境和线上环境不一致的问题
    很多工程师的老司机应该都有这样的体验,一个项目测试环境经过了缜密的测试基本应该没多少bug了,但一上线就各自奇葩问题层不出穷。虽然很多公司都要求测试环境要和正式环境一致,但实际情况很难做到完全一致,这些不一致的地方就会导致上述的事情。
    使用docker就可以很好的解决这个问题,工程师使用docker发布工程,发布的是一整套环境,而不仅仅是一套代码。

三. docker的安装。

docker是在linux服务器上运行的容器引擎,虽然windows机器上也可以通过安装linux虚拟器来安装使用,但性能和稳定性就不好讲了。正式环境使用docker建议只考虑linux机器。
这里将以阿里云centos7.3 64位操作系统,来演示如何安装。

  1. 更新yum安装的docker版本。
yum -y update docker
更新yum的docker版本
  1. yum安装docker。输入命令,耐心等待安装完成。
yum -y install docker
yum安装docker
  1. 启动docker。
service docker start
启动docker

非常简单,docker就安装完成并启动了。

四. 设置docker加速器。

刚才虽然成功安装并启动了docker,但是你会发现下载镜像的速度奇慢无比。因为docker默认从dockerhub网站去下载镜像,国内连接国外的网站下载,速度你懂的。好在docker也想到了这一点,提供了镜像加速的功能。

  1. 要使用镜像加速,首先你得有一个加速器地址。这里推荐使用阿里云的docker镜像仓库加速地址。进入阿里云的镜像仓库。在Docker Hub镜像站点获取你的专属加速器地址。

    加速地址

  2. 在服务器上输入以下命令,设置你的docker加速器并重启docker。注意把https://xxxxxxx.aliyuncs.com替换成你的专属加速器地址。

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xxxxxxx.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
设置加速器地址

至此,docker加速器设置完成。

五. 登录Docker Hub。

Docker Hub是docker镜像的国际通用仓库,相当于开源代码和github的关系。你可以在Docker Hub上下载到全球各大厂商提供的自己产品的官方docker镜像,还可以下载到其他工程师上传的镜像。你自己也可以上传镜像到Docker Hub进行保存和分享。

  1. 要在服务器登录Docker Hub,先得在Docker Hub的网站申请账号。这里就不啰嗦了,看官请自行申请。

  2. 在服务器输入命令docker login开始登录,并根据提示输入用户名密码。

    登录Docker Hub

六. 下载镜像。

打一个比方来稍微科普下,镜像和容器的关系就相当于java语言里,类和对象的关系。
下面通过一个简单的java镜像的例子来讲解。

  1. 首先,我们需要先获取官方的java镜像。你可以在Docker Hub的网站进行搜索。
Docker Hub搜索java

如上图,选择第一个java,official表示这是一个官方的镜像。点击进入详细页面。

Docker Hub java镜像详细页面

在详细页面的右上角,可以找到下载该镜像的命令。

  1. 现在找到了下载镜像的命令,让我们回到linux服务器,输入该命令。
docker pull java
下载java镜像

耐心等待镜像下载完成。此处你应该会发现,配置了加速器以后,下载镜像的速度简直飞快。

输入docker images命令来查看该服务器里所有镜像。此处可以看见刚才下载的java镜像。

查看所有镜像

七. 启动容器。

现在镜像已经下载完成,该通过镜像来启动容器了。
容器启动主要通过docker run + 可选参数 + 容器编号/容器名 + 启动命令。可选的参数很多,本文就不一一赘述了,感兴趣的朋友可自行查阅Docker官方文档。这里提几个最常用的来完成本示例的讲解。

  • -d 后台启动容器,默认情况下启动容器是非后台启动,启动以后会自动进入容器内部,而且一旦退出容器,容器也会自动关闭。加上该命令后,使用后台启动的方式启动容器,启动以后不会自动进入容器内部,只会返回容器编号。容器在后台自动运行。
  • -p port:port 将指定容器的端口号映射为机器的端口号,前一个port为主机的端口号,后一个port为容器的端口号。
  • -v path:path 将主机的一个硬盘目录或文件挂载到容器的指定位置。前一个path为主机的目录路径或文件,可以为绝对路径,也可以是一个自定义名称,如果是自定义名称,你可以在/var/lib/docker/volumes目录下找到;后一个path为容器内的路径,一般是绝对路径。
  • --name 给容器起一个别名
    介绍了启动容器的基本命令,我们试着来直接启动一个java容器。
docker run -d -it -p 8080:8080 -v /data/test.jar:/data/test.jar --name java docker.io/java java -jar /data/test.jar

八. 其他常用命令。

  • 开启docker服务 service docker start
  • 查看所有已启动容器 docker ps -a
  • 删除一个容器 docker rm 容器ID/容器别名
  • 删除一个镜像 docker rmi 镜像ID
  • 关闭一个已启动容器 docker stop 容器ID/容器别名
  • 启动一个关闭的容器 docker start 容器ID/容器别名
  • 查看一个容器的详情 docker inspect 容器ID/容器别名
  • 进入容器内部 docker exec -it 容器ID/容器别名 /bin/bash
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容

  • Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engi...
    ahohoho阅读 15,508评论 15 147
  • 转载自 http://blog.opskumu.com/docker.html 一、Docker 简介 Docke...
    极客圈阅读 10,468评论 0 120
  • 原文在此 获取镜像 之前提到过,Docker Hub 上有大量的高质量的镜像可以用,这里我们就说一下怎么获取这些镜...
    若与阅读 1,860评论 1 5
  • 0x01 核心概念 Docker镜像类似于虚拟机镜像,可以理解为一个面向Docker引擎的只读模板,包含了文件系统...
    闲云逸心阅读 4,693评论 0 9
  • 就在昨天,重庆人民鼓噪了好久的《从你的全世界路过》上映了,不好意思,这个名字我真的是看了好几遍才记住。 一般情况下...
    瘦得心疼阅读 205评论 0 0