Docker学习笔记#1

一、Docker Toolbox

Docker本身需要在Linux上运行,所以想要在windows和mac系统下运行,你需要安装一些软件。Docker Toolbox就是一个软件包,可以登陆官网下载系统对应版本。

docker toolbox

安装完成以后会有两个使用docker的工具:一个是命令行,一个是图形界面。

安装完成

打开Docker Quickstart Terminal工具,默认会创建一个default的虚拟机:


命令行工具

二、Image

Docker Hub网站上面,可以找到别人做好的一些镜像,有提供基础环境的镜像如,Ubuntu,Centos等等,也有一些安装了软件的镜像。

image

使用docker命令下载所需镜像到本地电脑上,不过当你不确定你要下载的镜像的名字可以先去搜索一下,比如你要搜索跟Centos相关的镜像:

搜索镜像

docker search centos
search

官方提供的镜像一般没有前缀,就像第一个centos。

下载镜像

比如要下载cenos镜像

docker pull centos
download

使用docker官网提供的registry tree可能会有点慢,可以选择使用国内提供的一些镜像服务,比如阿里云提供的服务,这样会快很多。

查看镜像

下载完成以后,查看已下载镜像可以输入:

docker images
images

三、container

创建容器

有了镜像,就可以运行镜像去创建容器。比如:

docker run centos /bin/echo 'hello'
run

docker run 后面跟的是镜像名字,接着是你希望在创建容器中运行的命令,上面运行的是使用echo命令输入hello

查看容器

docker ps
ps

没有容器,原因是刚运行的容器执行完命令后就退出了。可以通过加上--all的选项查看所以容器:

psall

CONTAINER ID表示容器的id,IMAGE表示使用的镜像,COMMNAND表示运行的命令,CREATED表示容器创建的时间,STATUS表示容器状态,NAME表示容器的名字,如果不手动指定,会默认生成一个名字。

我们可以基于同一个镜像创建不同的容器:

run2

删除容器

docker rm CONTAINER ID
rm

指定容器名

创建容器时可以使用--name的选项指定容器名字,方便后续对该容器的操作:

--name

查看容器日志

docker logs CONTAINER NAME

停止容器

docker stop CONTAINER NAME

重启容器

docker restart CONTAINER NAME

启动容器

docker start CONTAINER NAME
container

每运行一次容器都会输出一个hello,所以最后的log里有三个hello。

创建带互动的容器

docker run -i -t centos /bin/bash

-i或者--interactive选项表示创建一个带交互的容器
-t或者--tty选项表示给容器附加一个终端
/bin/bash表示终端的位置

执行命令后你会看到你已经进入到容器里面了,容器的主机名就是容器的id,在里面可以执行命令,安装应用等等。

bash

四、创建镜像

手工创建

docker commit -m '提交日志'  -a '作者' 容器ID 镜像名:容器标签

比如在容器里安装了nodejs的应用,想要保存修改,作为镜像使用。可以执行

docker commit -m '安装 nodejs' -a 'beckjiang' b5f1e430c603 beckjiang/nodejs-demo:latest

使用Dockerfile创建

使用dockerfile创建会更灵活一些。比如还是创建一个安装有nodejs应用的镜像,
先创建目录,进入目录,编辑dockerfile:


dockerfile1

进入nodejs-demo目录下后,创建Dockerfile文件,编辑文件:

FROM centos
MAINTAINER beckjiang
RUN curl --silent --location https://rpm.nodesource.com/setup_6.x | bash -
RUN yum install nodejs -y

一个最基本的Dockerfile就这样写好了,接着就是用这个Dockerfile创建镜像。回到命令行,当前所在位置为nodejs-demo里面,运行命令:

docker build --tag beckjiang/nodejs-demo:latest .

--tag表示镜像的名字以及tag;
. 表示当前目录下去寻找Dockerfile

推送镜像到Docker hub

Docker hub是一个保存镜像的地方,可以登陆网站注册账号,注册完成后,可以在命令行登陆并把自己创见的镜像推送到Docker hub上面。

登陆Docker hub

docker login

随后输入帐号,密码。

推送镜像

登陆成功后,可以把镜像推送上去

docker push beckjiang/nodejs-demo

docker只会把有变化的部分上传上去。

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

推荐阅读更多精彩内容

  • Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engi...
    ahohoho阅读 15,514评论 15 147
  • 转载自 http://blog.opskumu.com/docker.html 一、Docker 简介 Docke...
    极客圈阅读 10,481评论 0 120
  • 0. 前言 docker是什么?docker是用GO语言开发的应用容器引擎,基于容器化,沙箱机制的应用部署技术。可...
    sessionboy阅读 3,846评论 2 49
  • 0x01 核心概念 Docker镜像类似于虚拟机镜像,可以理解为一个面向Docker引擎的只读模板,包含了文件系统...
    闲云逸心阅读 4,708评论 0 9
  • 今早出门回来,远远的就看见小区门口多了个小推车,车前老式录音机放着过时的歌,歌声不大不小,刚好能听见,一位老人躬着...
    生命之神赵万物阅读 1,421评论 2 1