【docker学习笔记】镜像、容器和数据卷

docker安装

机器信息:linux centos

安装:yum install docker 
启动:systemctl enable docker && systemctl start docker
docker 配置信息位置:/usr/lib/systemd/system/docker.service

镜像image

1.1获取镜像

docker pull ubuntu
(没有tag标记,默认pull最新版本)

1.2查看镜像

docker images

1.3使用镜像启动容器

docker run -it ubuntu /bin/bash

1.4创建镜像

创建镜像有很多方法,用户可以从 Docker Hub 获取已有镜像并更新,也可以利用本地文件系统创建一个。

1.4.1 修改已有镜像

对已下载的镜像进行修改,然后提交到指定仓库。

1.4.2使用Dockerfile创建镜像

一个Dockerfile文件例子:

# This is a comment
FROM ubuntu:14.04
MAINTAINER Docker Newbee <newbee@docker.com>
RUN apt-get -qq update
RUN apt-get -qqy install ruby ruby-dev
RUN gem install sinatra

Dockerfile名词解释:

  • 使用#来注释
  • FROM 指令告诉 Docker 使用哪个镜像作为基础
  • MAINTAINER :表示维护者的信息
  • RUN 开头的指令会在创建中运行,比如安装一个软件包,在这里使用 apt-get 来安装了一些软件
  • ADD 命令复制本地文件到镜像
  • EXPOSE 命令来向外部开放端口
  • CMD 命令来描述容器启动后运行的程序等

启动镜像:

docker build -t "localhost/ubuntu:v2.0" .
(“-t”:仓库信息/镜像名称:镜像版本;“.”:Dockerfile存在于当前目录)
1.4.3从本地文件系统导入
sudo cat ubuntu-14.04-x86_64-minimal.tar.gz  |docker import - ubuntu:14.04

1.5修改镜像docker tag

docker tag 

1.6上传镜像

docker push

1.7存出和载入镜像

如果要导出镜像到本地文件,可以使用 docker save 命令。

docker save -o ubuntu_14.04.tar ubuntu:14.04

可以使用 docker load 从导出的本地文件中再导入到本地镜像库

docker load --input ubuntu_14.04.tar
或
docker load < ubuntu_14.04.tar

这将导入镜像以及其相关的元数据信息(包括标签等)。

1.8删除镜像

docker rmi

2容器

2.1启动容器

docker run -t -i ubuntu:14.04 /bin/bash
(-t 选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上, -i 则让容器的标准输入保持打开。)

2.2守护态运行

更多的时候,需要让 Docker 容器在后台以守护态(Daemonized)形式运行。此时,可以通过添加 -d 参数来实现。

docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"

docker ps 即可查看到刚才运行的容器
说明:

Docker容器后台运行,就必须有一个前台进程.容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的.
对于有一些你可能不知道怎么前台运行的程序,提供一个投机方案,你只需要在你启动的命令之后,添加类似于 tail top 这种可以前台运行的程序,这里特别推荐 tail ,然后持续输出你的log文件.tail -f /var/log/nginx/error.log
参考:http://blog.csdn.net/meegomeego/article/details/50707532

其他命令:

* docker ps -a:查看终止的进程
(处于终止状态的容器,可以通过 docker start 命令来重新启动)
* docker logs <contianer_id>
* docker stop 来终止一个运行中的容器。
* docker restart 命令会将一个运行态的容器终止,然后再重新启动它。

2.3进入容器

docker exec -it <container_id> /bin/bash

2.4导入和导出容器

使用 docker load 来导入镜像存储文件到本地镜像库,也可以使用 docker import 来导入一个容器快照到本地镜像库。

2.5删除容器

docker rm 

3.数据卷

3.1创建数据卷

docker run -d -P --name web -v /webapp training/webapp python app.py
(启动容器的时候通过-v参数指定数据卷,将/webapp 目录挂载到容器)

ps:也可以在 Dockerfile 中使用 VOLUME 来添加一个或者多个新的卷到由该镜像创建的任意容器。

3.2挂载一个主机目录作为数据卷:

docker run -d -P --name web -v /src/webapp:/opt/webapp training/webapp python app.py
(加载主机的 /src/webapp 目录到容器的 /opt/webapp 目录)

3.3挂载一个本地主机文件作为数据卷

docker run --rm -it -v ~/.bash_history:/.bash_history ubuntu /bin/bash
(这样就可以记录在容器输入过的命令了。)

3.4数据卷容器

如果你有一些持续更新的数据需要在容器之间共享,最好创建数据卷容器。
数据卷容器,其实就是一个正常的容器,专门用来提供数据卷供其它容器挂载的。
首先,创建一个命名的数据卷容器 dbdata:

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

推荐阅读更多精彩内容

  • 转载自 http://blog.opskumu.com/docker.html 一、Docker 简介 Docke...
    极客圈阅读 10,481评论 0 120
  • Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engi...
    ahohoho阅读 15,514评论 15 147
  • 五、Docker 端口映射 无论如何,这些 ip 是基于本地系统的并且容器的端口非本地主机是访问不到的。此外,除了...
    R_X阅读 1,740评论 0 7
  • 0x01 核心概念 Docker镜像类似于虚拟机镜像,可以理解为一个面向Docker引擎的只读模板,包含了文件系统...
    闲云逸心阅读 4,708评论 0 9
  • 今天一早早会就听到袁导讲这个概念,再到沙龙,乃至会后总结。其实对于这四个字感受蛮深的,曾经我以为的只要让别人去做,...
    Lucie陸陸阅读 533评论 0 4