Docker入门及基础操作

Docker是什么?

Docker的中文本意是码头工人,用于搬运货柜。Docker官网给出的解释是Docker是世界领先的软件货柜运输平台。通俗来说就是Docker就是一个可以将软件打包在一个标准的“货柜”里,并可以轻松迁移的平台。

Docker有什么作用?

Docker容器打包软件到一个包含了所有运行所需环境(代码、运行时状态、系统工具、系统库——任何可以被安装在服务器上的环境)的文件系统里,这样软件无论被迁移到哪里都是同样的运行环境。
通俗来说就是开发环境如果没有问题,用Docker打包成容器在服务器上运行,至少不会遇到环境问题。
还有像我这样使用Mac开发的程序员,如果需要开发oracle数据库,本地是无法安装oracle的,可以通过docker运行一个oracle镜像。

Docker的特点

轻量性
运行在一台机器上的容器共享其操作系统内核,它们启动使用更少的内存。Docker的镜像文件可以通过分层的文件系统及共享的公共文件创建(说白了就是Docker的镜像文件可以在其他镜像基础上创建并且还可以共享使用其他镜像或操作系统的文件,这样镜像文件就很小),节省磁盘空间并提高下载效率。

开放性
Docker容器基于开放标准,使容器能够在所有的主流Linux及windows或者其他设备的顶层运行。

默认安全性
容器隔离彼此和基础架构应用,同时为应用程序提供了额外的保护层。

Docker容器与虚拟机比较

虚拟机
虚拟机系统包含应用程序、必要的二进制文件和库和一个完整的客体操作系统,所有这些加起来至少几十GB。

Docker容器
Docker容器包含应用程序及其所需依赖,在主机操作系统上运行时,共享主机操作系统内核,每个容器都作为独立进程运行。Docker容器不限制设备型号等,可以运行在所有的设备上。

Docker安装

Mac上安装
请参阅Docker官网-Docker for Mac

Windows上安装
请参阅Docker官网-Docker for Windows

Ubuntu Linux上安装
请参阅Docker官网-Docker for Ubuntu

Docker基础操作

搜索镜像

作为初学者和实用主义者,建议先学习使用别人的镜像,即方便又简单,网上有很多牛人制作好的镜像文件,我只需找到它们直接使用即可,可大大减少我们搭建环境的时间。

方法一:访问Docker Hub网站搜索

  1. 首先通过浏览器访问Docker Hub网站

  2. 在右上角的搜索栏中输入要搜做的镜像关键字,如:tomcat,返回如下页面:


  3. 选择需要使用镜像,如:


  4. 查看镜像详细


方法二:通过命令行搜索

$ docker search tomcat

[图片上传失败...(image-6d63bf-1585114170564)]

下载镜像

在命令行模式下键入以下命令

$ docker pull tomcat

其中“tomcat”是镜像名(name),该命令可以在Docker Hub官网上搜索到的镜像详细中查看到
[图片上传失败...(image-658599-1585114170564)]

查看本地镜像列表

在命令行模式下键入以下命令

$ docker images

[图片上传失败...(image-981770-1585114170564)]
其中“image id”为镜像编号

删除本地镜像

在命令行模式下键入以下命令

$ docker rmi [image id] 

其中“[image id]”替换为具体的镜像“image id”
镜像删除时不能有该镜像的容器存在,无论是运行中的还是停止的

启动镜像成容器

在命令行模式下键入以下命令

$ docker run -it --rm -p 8888:8080 tomcat:latest

其中“-it”代表开启交互功能,即容器内tomcat启动日志你将能看到。
其中“—rm”代表当启动的容器停止后自动删除该容器(不是镜像哦)。
其中“-p 8888:8080”代表将容器中的8080端口映射到本地机器的8888端口上,即我们可以通过localhost:8888端口访问到tomcat,甚至我可以改变本地端口来启动多个tomcat容器。
最后的“tomcat:latest”代表启动的容器名称及其版本标签。
还有很多其他的docker run的参数请查看docker官网-文档-run
该条启动命令可以在Docker Hub上该镜像的详细说明中查看,其中会有多种启动方式说明
[图片上传失败...(image-fc87c0-1585114170564)]

查看运行中的容器

在命令行模式下键入以下命令

$ docker ps

[图片上传失败...(image-e6f58a-1585114170564)]
其中“container id”为容器编号,下面的操作将与它相关

进入运行中的容器内部执行命令

有时容器的设置并不能满足我们的需要,比如,我们可能需要增加一个tomcat用户,或是配置一个数据源连接池等,需要进入容器中修改参数,下面我们就介绍下如何进入容器中。
在命令行模式下键入以下命令

$ docker exec -it [container id] /bin/bash

就可以进入容器内的命令行模式,其中“[container id]”在执行时替换为具体容器的container id
[图片上传失败...(image-13f143-1585114170564)]

停止运行中的容器

在命令行模式下键入以下命令

$ docker stop [container id]

其中“[container id]”在执行时替换为具体容器的“container id”

查看停止状态的容器

在命令行模式下键入以下命令

$ docker ps -a

启动停止状态的容器

在命令行模式下键入以下命令

$ docker start [container id]

其中“[container id]”在执行时替换为具体容器的“container id”

删除的容器

在命令行模式下键入以下命令

$ docker rm [container id]

其中“[container id]”在执行时替换为具体容器的“container id”

提交容器成为新的镜像

在命令行模式下键入以下命令

$ docker commit [container id] [your name]/[image name]:[tag]

其中“[container id]”在执行时替换为具体容器的“container id”
其中“[your name]”在执行时替换为你的名字,方便大家知道是你做的镜像
其中“[image name]”在执行时替换为你希望的镜像名称
其中“[tag]”在执行时替换为你的镜像的版本,也可以不指定
详细“docker commit”说明请参考docker官网-文档-commit

导出镜像

在命令行模式下键入以下命令

docker save [image name] > [local file name].tar

其中“[container id]”在执行时替换为具体镜像的名字
其中“[local file name]”在执行时替换为你想取的本地文件名

载入镜像

在命令行模式下键入以下命令

$ docker load < [local file full name]

其中“[local file full name]” 在执行时替换为本地文件名(含扩展名)

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

推荐阅读更多精彩内容

  • docker 部署 标签(空格分隔): docker 系统centos6.8 mini docker 官方文档ht...
    Lisong阅读 653评论 0 1
  • 转载自 http://blog.opskumu.com/docker.html 一、Docker 简介 Docke...
    极客圈阅读 10,404评论 0 120
  • 一、Docker 简介 Docker 两个主要部件:Docker: 开源的容器虚拟化平台Docker Hub: 用...
    R_X阅读 4,342评论 0 27
  • 下面是我和同学去面试腾讯实习一面的面试题,仅供参考! 我的面试题## 时间:2014.4.23 下午2:40 ~...
    小敏纸阅读 1,967评论 9 27
  • 尘埃:见到了什么 ■巴山雪儿 尘埃充当了谁的记忆 环视 ...
    巴山雪儿阅读 115评论 0 3