docker入门指南

docker可以安装在windows/mac os/linux系统上,目前最新版本为:1.12.0

安装

  • windwos: 需要机器要能支持VT-x虚拟化技术,下载地址 https://download.docker.com/win/stable/InstallDocker.msi 安装完成后会在桌面创建两个图标,运行其中一个(boot2docker)启动docker引擎,等待初始化到100%完成,然后运行另外一个(docker terminal),在其中执行docker命令即可
  • mac os: 下载地址 https://download.docker.com/mac/stable/Docker.dmg
  • linux 在终端执行:curl -SL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh - 等待安装完成,然后添加开机启动chkconfig docker on,启动docker执行service docker start

镜像

docker镜像可以看作是类似于操作系统镜像一样的东西,你可以在镜像中安装你的应用,以及所需要的各种依赖库,然后将该镜像共享给其他人,其他人拿到镜像后,通过docker启动你的应用,无需再次安装各种依赖软件。docker镜像类似于操作系统镜像,担比操作系统镜像更轻量,构建更快速。

容器

镜像只是一个文件放在那里,当启动它后,就会创建并运行一个容器,运行起来的容器就相当于一个运行着的操作系统,此时你就可以进入容器安装软件,执行各种操作了。一个镜像可以启动多个容器,它们互不干扰。可以把镜像比做编程语言里面的,容器就是类的实例。容器有运行和停止两种状态。

Hello world

//从官方仓库下载mysql镜像
docker pull centos
//查看本地拥有的镜像
docker images   
//启动centos镜像
docker run centos
//查看运行着的容器,加-a查看所有的容器
docker ps
fuxiaodeiMac:~ fuxiao$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
227dff6338c1        mysql               "docker-entrypoint.sh"   21 seconds ago      Up 20 seconds       3306/tcp            zen_sammet
//停止容器
docker stop 227dff6338c1

docker常用命令://www.greatytc.com/p/50134af6f809

创建镜像

1. 修改已有镜像

启动一个已有镜像,然后进入容器,安装自己需要的软件库,然后exit推出镜像,执行

docker commit -m "描述" -a "SongCF" 0b2616b0e5a8 songcf/mysql:v2
//-a 镜像作者信息
//0b2616b0e5a8 刚才运行的容器id
//songcf/mysql:v2 要创建的镜像的名称tag

2. 利用 Dockerfile 来创建镜像

需要先熟悉dockerfile如何编写
参考:https://yeasy.gitbooks.io/docker_practice/content/dockerfile/basic_structure.html

容器间网络通信

这里仅描述启动容器的时候指定端口该方法。

//-p ip:hostPort:containerPort
//-p ip::containerPort
//-p hostPort:containerPort
例如:
docker run -p 3306:3306 mysql
//启动mysql容器时,将容器的3306端口绑定到本机的3306端口,其它应用访问本机3306端口即访问到容器中的mysql

数据卷

在主机与容器间共享数据,类似共享文件夹,启动容器时添加-v参数,如:

docker run -v /root/data/:/songcf/data/ centos
//将本机的/root/data/目录挂载到centos容器的/songcf/data/目录,在centos容器中操作/songcf/data/目录,就相当于更改了主机上的/root/data/目录

多个容器可以挂载主机上的同一目录,实现容器间目录共享。

常见问题

1. pull镜像速度太慢

添加国内代理,例如使用aliyun,登录 https://dev.aliyun.com/ 选择一个镜像,点击 点击获取镜像加速器地址(须注册并登录阿里云),然后会得到一个网址,类似 https://xxxxx.mirror.aliyuncs.com,接下来将该地址添加到docker配置文件中,以centos系统为例:

//打开配置文件
vi /etc/sysconfig/docker
//在options中添加镜像加速地址(注意是添加)
OPTIONS='--registry-mirror=https://xxxxx.mirror.aliyuncs.com'

然后执行service docker restart重启docker

2. 无法访问私有仓库

目前我门的私有仓库为v2版本,且没有添加证书,客户端访问默认走https,需要在配置文件中指定仓库地址使用http,而非https

//打开配置文件
vi /etc/sysconfig/docker
//在options中指定私有仓库地址不使用https(注意是添加)
OPTIONS='--insecure-registry 192.168.2.55:5000'

然后执行service docker restart重启docker

3. 共享镜像

自己创建镜像后,可以通过docker push到仓库上供他人使用,但是当仓库再远端,你要和旁边的同时共享镜像,自己push,然后他再pull可能会有点慢,所以此时可以导出镜像文件给它使用:

//到处centos镜像到xxx.tar文件
docker save -o xxx.tar centos
//然后xxx.tar传给同事导入即可
docker load -i xxx.tar

// ps: save/load镜像导入导出,export/import容器导入导出

入门电子书推荐:
https://yeasy.gitbooks.io/docker_practice/content/index.html

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

推荐阅读更多精彩内容

  • Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engi...
    ahohoho阅读 15,523评论 15 147
  • 0. 前言 docker是什么?docker是用GO语言开发的应用容器引擎,基于容器化,沙箱机制的应用部署技术。可...
    sessionboy阅读 3,849评论 2 49
  • 转载自 http://blog.opskumu.com/docker.html 一、Docker 简介 Docke...
    极客圈阅读 10,494评论 0 120
  • 2017.9.1 成都 雨 今天可能对于所有人来说很普通,但对于我来说不平凡。 去年的今天在疼痛24小时后顺利产下...
    涵涵妈妈宁歆怡阅读 371评论 2 0
  • 露珠说聊斋(一) 文/第一滴露珠 聊斋故事,在中国的知名度较高,无论男女老少,谁还说不出三五个聊斋故事的名字来,比...
    第一滴露珠阅读 1,216评论 21 12