登录  | 加入社区

黑狼游客您好!登录后享受更多精彩

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

查看: 483|回复: 0

Docker入门(一)用helloworld入门docker

[复制链接]

164

主题

164

帖子

0

现金

黑狼菜鸟

Rank: 1

积分
0
发表于 2019-1-31 22:48:36 | 显示全部楼层 |阅读模式 来自 江苏徐州
初识Docker

Docker是什么?

  Docker 是一个开源的应用容器引擎,基于 Go 语言并服从Apache2.0协议开源。
  Docker 可以让开辟者打包他们的应用以及依靠包到一个轻量级、可移植的容器中,然后发布到任何盛行的 Linux 呆板上,也可以实现假造化。
  容器是完全利用沙箱机制,相互之间不会有任何接口,更紧张的是容器性能开销极低。

iHc95xaaIlxWhawh.jpg Docker与传统假造化的差别之处

  Docker与传统假造化的差别之处在于:传统假造机技能是假造出一套硬件后,在其上运行一个完备操纵体系,在该体系上再运行所需应用历程;而容器内的应用历程直接运行于宿主的内核,容器内没有本身的内核,而且也没有举行硬件假造。因此容器要比传统假造机更为轻巧。
Docker的上风

  Docker的五大上风为:

  • 连续集成
  • 版本控制
  • 可移植性
  • 隔离性
  • 安全性
关于其阐明,详细可参考网址:http://dockone.io/article/389 。
Docker的安装

  本文以Mac体系为例,解说Docker的安装,别的体系的安装方式可参考:安装 Docker 。
利用 Homebrew 安装

  Homebrew 的 Cask 已经支持 Docker for Mac,因此可以很方便的利用 Homebrew Cask 来举行安装:
brew cask install docker
手动下载安装

  假如必要手动下载,可以通过这个链接下载:http://download.docker.com/mac/stable/Docker.dmg 。犹如 MacOS 别的软件一样,安装也非常简朴,双击下载的 .dmg 文件,然后将鲸鱼图标拖拽到 Application 文件夹即可。
启动Docker

  从应用中找到 Docker 图标并点击,即可启动Docker,启动后在最上侧的菜单栏状态如下:
PSkSxx7Q8Q9q888e.jpg 启动docker  启动终端后,通过下令可以查抄安装后的 Docker 版本:
$ docker --version
Docker version 18.09.1, build 4c52b90
  接着我们运行docker中的hello world来验证docker是否安装且启动乐成:
WPUoKZOq3bEhaUkZ.jpg docker run hello-worldDockerhub账号注册

  为了方便展示以及后续的docker利用,我们最幸亏DockerHub上注册一个本身的账号。 DockerHub,雷同于代码管理的Github,可以简朴高效地管理我们的docker项目。
  DockerHub的注册地点为:http://hub.docker.com/signup,界面如下:

F2xN57Y21d51snXu.jpg DockerHub注册界面  注册完DockerHub后,我们登录个人账号。点击Create Repository +按钮新建Docker堆栈,名字为dockertest。如下:
AGIYGcZ6qZkRAgVh.jpg create repository再点击Create按钮即可。创建后的dockertest项目如下:
UAiBz92frFiw9zAI.jpg dockertest堆栈  至此,我们已经在DockerHub上创建了一个本身的账号,而且新建的一个dockertest堆栈,只管这个堆栈内里没有任何东西。
  下一步,我们往dockertest这个堆栈内里装点什么。

Docker利用实例:hello world

  起首,我们必要用docker在当地打包一个docker镜像,然后对其打标签(tag),然后将其推送(push)至个人的dockerhub账号中的dockertest堆栈,末了将该镜像拉下来,并运行。
镜像打包


  • 新建mydocker文件夹
$ tree mydocker
mydocker
├── src
│   └── test_docker.py
└── test_docker.build

  • test_docker.py代码:
print "hello world from python!"
print "this is from docker!"

  • test_docker.build代码(使用Dockerfile打包镜像):
FROM centos:7.2.1511

#情况变量硬编码实时区
ENV ENVIRONMENT DOCKER_PROD
RUN cd / && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

# 拷贝并so加密代码
COPY src /root/src

# 工作目次
WORKDIR /root/src/
这里,我们不再过多报告上述Dockerfile中的下令,有爱好的同砚可移步:http://blog.51cto.com/wutengfei/2156797 , 笔者也会在后续的文章中给出Dockerfile下令的具体报告。

  • 下令行打包镜像:
cd ./mydocker
docker build -f test_docker.build -t hub.docker.com/dockertest:test.1111 .
D0k4kQ6q4GG9q4k3.jpg docker打镜像列出镜像

  在打包完镜像后,我们可以列出docker的镜像,检察镜像的ID,方便后续操纵。下令为docker images,如下:
rChs18VrS1eVdRkd.jpg docker images由此可知,我们新打包的docker镜像的ID为be236e996983。
推送镜像


  • 打标签(tag)
docker tag be236e996983 jclian91/dockertest:hello_world_test_19.01.31.1100
镜像ID可通过docker images检察。

  • 登录dockerhub账号
docker login
再输入本身的账号、暗码即可。

  • 推送(push)镜像
docker push jclian91/dockertest:hello_world_test_19.01.31.1100
全部下令的界面如下:
r4s2SY0744y2m7PS.jpg docker推送镜像此时,我们去dockerhub的dockertest堆栈中去检察,发现已经上传一个镜像了,如下:
ecckae0H8bCAK080.jpg docktest堆栈多了一个镜像运行镜像


  • 为了运行新上传的镜像,我们先删除当地打包的镜像:
$ docker rmi -f be236e996983
Untagged: jclian91/dockertest:hello_world_test_19.01.31.1100
Untagged: jclian91/dockertest@sha256:c2ac02cb725a8256c2d752461133004cc05a6060390220b15a0aaefefc7c95e7
Untagged: hub.docker.com/dockertest:test.1111
Deleted: sha256:be236e996983339318796f588fd5acda1da5f942289a2559f948a4811d68428d
Deleted: sha256:5c46baa463a1e86d0924c493bb0e12888fc6aaefdcaf128d8193406eb0ef4ed1
Deleted: sha256:f76e87a3e84bf1a03e81dfdc53a569a7adce6cfc80bb56d7d2040e118e2848f7

  • 拉取(pull)新上传的镜像
docker pull jclian91/dockertest:hello_world_test_19.01.31.1100

  • 运行(run)该镜像
docker run -it be236e996983 bash
参数阐明:此中 -i:交互式操纵, -t:终端,如存在-d参数,-d:背景运行。
如许我们就能进入到这台用docker创建好的假造机内部了,我们在该Linux假造机内部运行下令,如下:

[root@ca9070ce82e1 src]# ls
test_docker.py
[root@ca9070ce82e1 src]# python test_docker.py 
hello world from python!
this is from docker!
总结

   hello world是全部编程语言的入门例子,在本文中,我们用docker本身创建了一个hello world的例子,用来展示docker的根本用法,盼望能给初入门的同砚一个显着直观的例子。
   后续的文章将会更多地先容docker方面的知识,接待各人关注,如有任何疑问,请在留言区留言。

留意:本人现已开通微信公众号: Python爬虫与算法(微信号为:easy_web_scrape), 接待各人关注哦~~
参考文献:


  • Docker —— 从入门到实践: http://yeasy.gitbooks.io/docker_practice/content/install/
  • Docker根本先容和操纵:http://blog.51cto.com/wutengfei/2156381
  • Docker 教程: http://www.runoob.com/docker/docker-tutorial.html
  • 《第一本Docker书 修订版》 詹姆斯·特恩布尔 人民邮电出书社




上一篇:"多快好省"——交织编译构建本身的linux操纵体系
下一篇:娱乐早报|腾讯娱乐白皮书发布:Baby照相也要美颜
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

 

QQ|申请友链|小黑屋|手机版|Hlshell Inc. ( 豫ICP备16002110号-5 )

GMT+8, 2024-5-18 13:04 , Processed in 0.055024 second(s), 47 queries .

HLShell有权修改版权声明内容,如有任何爭議,HLShell將保留最終決定權!

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表