实时搜索: docker如何使用

docker如何使用

877条评论 1437人喜欢 4275次阅读 758人点赞
...

如何学习Docker: 如何学习Docker
对于在校学生而言,应该如何去学习docker?毕竟学校没有具体的应用需求作为引导,所以应该如何去研究Docker?还有,Docker的源代码有没有必要去研究?

首先我说明下,我是一位在浙江大学VLIS实验室云计算项目组的学生,使用过Docker,研究过Docker及其源码,也定制过Docker。

对于学生如何学习Docker,我认为首先要看一下学生个人的知识背景、能利用的资源资源、以及个人兴趣和发展方向。

1.学习Docker,如果没有云计算的基本知识,以及内核的基本知识,那么学习并理解起来会稍吃力。作为容器,Docker容器的优势在哪,不足在哪,最好了解容器的实现是怎样的(简单了解);拥有镜像管理,Docker又该如何体现软件开发,集成,部署,发布,再迭代的软件生命周期管理优势。以上两点我认为最为关键,有这两方面的认识势必会对之后的工作帮助巨大。

2.关于学习资源,起码的硬件设施总是要有的。Docker及其生态的发展很快,不使用纯理论肯定收效甚微。另外,资源还包括Docker官方,各大电子媒体平台,技术论坛,开源社区等,往往大拿的观点能点破自己的困惑,或者让自己知道哪方面的认识还很欠缺,以及让自己少走很多的弯路。

3.个人兴趣的话,归结为强扭的瓜不甜。起码应该认同Docker的设计价值,以及Docker的未来潜力,当然有依据的批判Docker并带动大家的思考,也是深切关注的表现。

4.个人发展方向,我认为如果需要把Docker当作软件生命周期管理工具的话,那用好Docker最为重要,API及命令的理解与使用是必需的。如果专注系统设计方面,那么除Docker以上的知识与经验之外,若有Docker源码的学习与理解,那么这些肯定会让你的Docker水平提高一个层次。
2014-11-21 8 0

xds2000
学习Docker,最大的好处是跟进新技术发展方向。我觉得在校生应该没有多少硬性需求在Docker的研究上,这也是为什么学校没做具体应用要求的原因。最实际的做法是看一些Docker使用案例,自己实践出一些经验应该会再以后的社会实践中起到作用。

研究docker的源代码,应该到你下定决心从事云计算方面的事业或者研究,那么你就需要以研究者的身份去做仔细的源码分析的工作。
2014-11-21 3 0

刘勃GTDer

我作为参加工作的过来人来说,我认为只有你真正参加工作后,在工作中学习跟有意义,毕竟Docker知识云计算其中的一个软件平台而已,说不来等你毕业了,新的技术出现Docker不一定是唯一选择。
作为学生了解新技术确实无可厚非,一定要能把理论转化为生产力才是正道。
2014-12-15 3 0

9lives - 爱生活,爱云计算。

学习任何一个开源新技术,首先问自己几个问题:
1. 为什要学习它?
2. 学习它需要了解哪些相关知识点?
3. 如何快速学习?
4. 该技术的使用场景是什么?

拿我个人的学习经验来举例(本人之前比较了解OpenStack)

为什要学习docker?
回答:
docker是轻量级虚拟化技术,docker使linux容器技术的应用更加简单和标准化
docker的速度很快,容器启动时毫秒级的
docker将开发和运维职责分清
docker解决了依赖地狱问题
docker支持几乎所有操作系统
docker有着飞速发展的生态圈
很多IT巨头逐渐加入和支持
学习它需要了解哪些相关知识点?
回答:
云计算概念相关(restapi, 微服务,OpenStack)
Linux 系统管理(软件包管理,用户管理,进程管理等)
Linux 内核相关(Cgroup, namespace 等)
Linux 文件系统和存储相关(AUFS,BRFS,devicemapper 等)
Linux 网络(网桥,veth,iptables等)
Linux安全相关(Appmor,Selinux 等)
Linux进程管理(Supervisord,Systemd etc)
Linux容器技术(LXC等)
开发语言(Python, GO,Shell 等)

3.如何快速学习?
回答:个人体会最好有一个实际的需求或项目来边实践边学习,入门可以参考(第一本docker书)写的不错,非常适合入门。除此之外,阅读牛人的blog比如官方blog http://blog.docker.com/
最后,参与社区互动也是很好的学习方式。

该技术的使用场景是什么? 回答:docker非常适用于dev/test CI/CD 场景,用完就扔。还有就是PasS了。

欢迎大家讨论。
2015-05-21 3 0

西弗尔 - 要么牛逼,要么滚蛋

你好!我也是在校的学生,也在自己学习docker,多多交流啊!
2015-05-23 1 1

田浩浩 - wizmacau developer
https:// github.com /llitfkitfk/docker-tutorial-cn/
BTW: 熟读docker文档
2014-11-21 0 0

tuxknight
楼上各位说的都很好,我再补充一点:
找份相关的实习工作
2015-07-22 0 0

lancer
工作和研究是两个方向我个人认为,工作需要通过你的实际效能为企业带来经济效益,而研究的话可以专注某个点。但是研究离不开工作,因为工作可以让你更好的理会技术带来的价值,以及如何提供更好的服务,用户使用场景需要那些技术的突破。有了这些认识,然后更加专注的研究某个技术点,这样或许可以说技术和商业是分不开的。
2015-08-25 0 0

绿剑色影
docker现在十分火热,值得学习一下。

如何创建docker network: 使用docker network create命令来创建,只能创建docker内建的网络模式
使用docker plugin,创建自定义网络

使用docker命令创建网络

Docker中内置的网络模式包括如下几种:

bridge 我们基于该网络模式创建了mynet网络
host 本地网络模式
macvlan 这个模式貌似是最新加的
null 无网络
overlay 用于swarm集群中容器的跨主机网络访问

docker create network命令包含以下参数:
Flag shorthand -h has been deprecated, please use --help

Usage: docker network create [OPTIONS] NETWORK

Create a network

docker 64 必须 为什么: 对于Docker的安装在官网上针对不同的操作系统分别进行了描述,Ubuntu上安装Docker,对于ubuntu操作系统来说必须是64位的,因为Docker的官网上只是提供了64位的docker,如果需要32位的docker则需要下载源码进行编译,这里有篇文章介绍了Docker源码如何进行编译成32位,编译32位的Docker。但是对于我使用的Ubuntu来说正好是32位的。通过下面的两条命令可以看出操作系统的位数和Linux的内核版本。

root@ubuntu:/tmp#uname -a
Linux e529c1b7772a 3.13.0-12-generic #32-Ubuntu SMP Fri Feb 21 17:44:24 UTC 2014 i686 i686 i686 GNU/Linux
root@ubuntu:/tmp#file /sbin/init
/sbin/init: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=1c47d1e162f6542994e457394ac52078da5cc023, stripped
如果想在32为的Ubuntu操作系统上运行Docker的话,就必须安装32位的Docker。在Ubuntu中提供docker1.01-32位的deb包,可以直接点击“docer1.01-32位deb包”跳转到下载页面。下载完成后,直接使用dpkg –i进行安装。
dpkg -i docker.io_1.0.1~dfsg1-0ubuntu1~ubuntu0.14.04.1_i386.deb
Selecting previously unselected package docker.io.
(Reading database ... 150021 files and directories currently installed.)
Preparing to unpack docker.io_1.0.1~dfsg1-0ubuntu1~ubuntu0.14.04.1_i386.deb ...
Unpacking docker.io (1.0.1~dfsg1-0ubuntu1~ubuntu0.14.04.1) ...
Setting up docker.io (1.0.1~dfsg1-0ubuntu1~ubuntu0.14.04.1) ...
docker.io start/running, process 10456
Processing triggers for ureadahead (0.100.0-16) ...
Processing triggers for man-db (2.6.6-1) ...
也可以参考下面的这篇文章《Docker 1.0.1 已经可以在 Ubuntu 14.04 LTS 上测试了!》进行安装。安装完成后,可以使用下面的命令确定安装的版本和基本的信息。由于docker使用go语言进行编写的,所以要依赖于GO的编译工具和库文件。
oot@ubuntu:/tmp# docker version
Client version: 1.0.1
Client API version: 1.12
Go version (client): go1.2.1
Git commit (client): 990021a
Server version: 1.0.1
Server API version: 1.12
Go version (server): go1.2.1
Git commit (server): 990021a
root@ubuntu:/tmp# docker info
Containers: 1
Images: 7
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Dirs: 10
Execution Driver: native-0.2
Kernel Version: 3.13.0-12-generic
WARNING: No swap limit support
官方安装方式docker pull imagename从docker的索引中心下载,imagename是镜像名称,例如docker pull ubuntu就是下载base ubuntu并且tag是latest。
root@ubuntu:/# docker pull ubuntu:14.04
Pulling repository ubuntu
c4ff7513909d: Download complete
511136ea3c5a: Download complete
1c9383292a8f: Download complete
9942dd43ff21: Download complete
d92c3c92fa73: Download complete
0ea0d582fd90: Download complete
cc58e55aa5a5: Download complete
root@ubuntu:~/Downloads# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
ubuntu 14.04 c1b5399bd2ee 8 minutes ago 205.3 MB
learn/tutorial latest 8dbd9e392a96 17 months ago 128 MB
root@ubuntu:/# docker run -i -t ubuntu /bin/bash
2014/09/04 13:04:28 exec format error
docker run -i -t learn/tutorial /bin/bash
2014/09/04 14:45:13 exec format error
PS:在安装完成Dokcer后,使用Pull命令sudo docker pull ubuntu:14.04从镜像仓库获取ubuntu的镜像后,然后使用run命令docker run -i -t ubuntu /bin/bash直接运行该镜像时,会出现下面的错误信息,后来我又尝试着使用官方演示使用的learn/tutorial镜像,还是出现同样的问题,现在怀疑可能是由于我安装的DOcker是32位的,而Image是64位的不匹配造成的。前面说过Docker默认提供的都是64位,其中提供的Image自然也都是64位,所以会出现下面的错误信息。在Docker Hub Registry里的大多数镜像都是64位。这里有一个关于该错误的讨论帖“Ddocker.io: Docker should recommend
linux-image-amd64 ”。所以,如果想在32位的Docker基础上运行Ubuntu的Image那要求Ubuntu的image也必须是32位。这就需要制作32位Ubuntu的Image。这里有一个官方提供的可用的Ubuntu image的列表,Ubuntu Image tag。

如何在 Windows 上通过 Kitematic 使用 Docker: 在本篇文章中,我们会学习如何在 Windows 操作系统上安装 Kitematic 以及部署一个测试性的 Nginx Web 服务器。Kitematic 是一个具有现代化的界面设计的自由开源软件,它可以让我们在 Docker 中交互式执行任务。Kitematic 设计的非常漂亮、界面美观。使用它,我们可以简单快速地开箱搭建我们的容器而不需要输入命令,可以在图形用户界面中通过简单的点击从而在容器上部署我们的应用。Kitematic 集成了 Docker Hub,允许我们搜索、拉取任何需要的镜像,并在上面部署应用。它同时也能很好地切换到命令行用户接口模式。目前,它包括了自动映射端口、可视化更改环境变量、配置卷、流式日志以及其它功能。

如何使用new relic 监控基于 docker的应用程序: 一、介绍
Docker是当前发展最快的新技术之一,它是一种部署软件和建立可伸缩网络服务架构的解决方案,Docker允许你按照特定的角色与用途将你的应用程序架构进行解耦并使用容器进行承载。通过使用Docker,你也可以在操作系统级别指定应用程序的依赖关系,让我们更接近JAVA最原始的承诺:“一次编写,随处运行”。
Docker的缺点是, 把代码封装到一组容器中可能会导致缺乏可见性:容器变成了黑盒子并使得开发人员对容器内部的工作方式几乎不可见。
为了解决这个问题,New Relic接手了此项任务并使得其服务器端的监控工具(服务器和APM)支持Docker。在2015年6月,所有的New Relic的用户均可通过New Relic实现对Docker的监控。
在宣布对Docker的支持以后,来自New Relic的Andrew Marshall写到:“现在,你可以从应用程序开始深入(这才是你最关心的),然后到个体的Docker容器,再到物理服务器,而不再有盲点”。
通过使用New Relic工具集监控基于Docker的应用程序,可以把应用程序作为一个整体来进行分析,找出出现问题的容器并在容器内部解决问题。
同时,在Docker层面对应用程序进行监控,你将会获得关于配置的一些有价值的信息:你是否在很明智的使用着容器吗?容器之间的资源划分是合理的吗?
在本教程中,我将向你展示如何使用New Relic工具监控一个简单的基于Docker的应用程序。你将会学习到:
如何设置New Relic来监控运行在一组Docker容器上的网络服务器并收集整个Docker环境的信息;
如何设置New Relic来监控运行在一个或者多个Docker容器内部的PHP应用程序,在监控应用程序状态的同时也可以监控Docker容器个体。
为了实现这个目标,我们将建立一个简单的环境来实现WordPress方案:三个WordPress站点每个站点均运行在一个Docker容器中,三个站点共享一个MySQL容器。
安装完毕之后,我们就可以通过监控工具查看监控到的视图与数据。

Docker公司的三款用于解决多容器分布式软件可移植部署的问题,推出的编排工具有哪些?:       Docker Compose是Docker编排服务的有利工具,可以让用户在其它平台快速安装部署多个微服务和结合,可以让用户在集群中部署分布式应用。简单的说,Docker Compose属于一个“应用层”的服务,用户可以定义哪个容器组运行哪个应用,它支持动态改变应用,并在需要时扩展。

怎么查看docker镜像的信息: 启动docker服务器后,使用docker images 命令。返回当前所有的镜像,使用docker ps 查看正在运行的容器,使用docker ps -a 查看docker中所有容器。

如何创建一个docker service 服务: 1. 运行一个Docker实例
Docker首先会尝试从本地取得并运行所需的镜像,如果在本地主机上没有发现,它就会从Docker公共注册中心拉取。这里,我们将会拉取镜像并在 Docker 容器中创建一个Fedora实例,并连接到它的 tty 上的bash shell。
# docker run -i -t fedora bash

2.安装Apache网络服务器
现在,在我们的Fedora基本镜像实例准备好后,我们将会开始交互式地安装Apache网络服务器,而不是为它创建Dockerfile。为了做到这点,我们需要在终端或者shell运行以下命令。
# yum update

# yum install httpd

退出容器的 tty。
# exit

3.保存镜像
现在,我们要去保存在Fedora实例里做的修改。要做到这个,我们首先需要知道实例的容器ID。而为了得到ID,我们又需要运行以下命令(LCTT 译注:在容器外执行该命令)。
# docker ps -a

然后,我们会保存这些改变为一个新的镜像,请运行以下命令。
# docker commit c16378f943fe fedora-httpd

这里,修改已经通过使用容器ID保存起来了,镜像名字叫fedora-httpd。为了确认新的镜像是否在运行,我们将运行以下命令。
# docker images

4. 添加内容到新的镜像
我们自己新的Fedora Apache镜像正成功的运行,现在我们想添加一些我们网站的网页内容到Apache网络服务器,使得网站能够开箱即用。为做到这点,我们需要创建一个新的Dockerfile,它会处理从复制网页内容到启用80端口的所有操作。要达到这样的目的,我们需要使用我们最喜欢的文本编辑器创建Dockerfile文件,像下面演示的一样。
# nano Dockerfile
现在,我们需要添加以下的命令行到文件中。
FROM fedora-httpd
ADD mysite.tar /tmp/
RUN mv /tmp/mysite/* /var/www/html
EXPOSE 80
ENTRYPOINT [ "/usr/sbin/httpd" ]
CMD [ "-D", "FOREGROUND" ]

这里,上述的Dockerfile中,放在mysite.tar里的网页内容会自动解压到/tmp/文件夹里。然后,整个站点会被移动到Apache的网页根目录/var/www/html/,命令expose 80会打开80端口,这样网站就能正常访问了。其次,入口点放在了/usr/sbin/https里面,保证Apache服务器能够执行。

5. 构建并运行一个容器 
现在,我们要用刚刚创建的Dockerfile创建我们的容器,以便将我们的网站添加到上面。为做到这,我们需要运行以下命令。
# docker build -rm -t mysite .

建立好我们的新容器后,我们需要要用下面的命令来运行容器。
# docker run -d -P mysite

  • 昆明一专学校有哪些学校

    西数1T硬盘用Victoria扫出来600多个错误: 这个问题是硬盘坏道的问题,错误呢是可以屏蔽的也就是通常的修复,但是这种修复解决不了实际性的物理损坏,这是屏蔽物理损坏。治标不治本的。以后的数据安全也是成隐患,速度下降。对于1T的硬盘出现这种问题是很正常的,因为1t的...

    279条评论 1623人喜欢 2392次阅读 430人点赞
  • 10度左右穿什么

    玻尿酸隆鼻需要多少钱?: 玻尿酸隆多少钱取决于注射的材料,玻尿酸注射材料分国产的和进口的,一般来说,国产的材料相对来说比较便宜,而进口的比较昂贵。其次,玻尿酸隆鼻多少钱和注射剂量有关,每个人隆鼻的要求以及自身的条件不一样,需要玻尿酸剂量也不一...

    262条评论 5320人喜欢 3384次阅读 767人点赞
  • 360安全卫士的防火墙在哪

    用玻尿酸可以做微整形吗,多少钱: 玻尿酸挺好的,注射玻尿酸其实没有什么副作用的,玻尿酸经卫生部核准注射的玻尿酸,其中的成份是人体可以吸取代谢的,所以不会有残留在体内的情况。但任何东西都不是百分百完美的,它也有些许不足之处,就是不能够在体内长久存在,这...

    337条评论 2361人喜欢 1610次阅读 928人点赞
  • dnf怎样在登录界面设置全屏游戏

    五马分尸是怎么个分法: 古代的一种酷刑,用五匹马或牛拉扯裂人的头和四肢,又称“车裂”。比喻硬把完整的东西分割得非常零碎。 出处明·胡文焕《群音类选·北腔类·王昭君和番》:“无不盖你亏心汉,今日把你分尸五马,远配千年。” 历史商鞅相秦期间,...

    802条评论 3046人喜欢 1176次阅读 911人点赞
  • ipad被锁了怎么办

    透明质酸是什么:   透明质酸又名玻尿酸,透明质酸是一种酸性粘多糖。随着人们年龄的增长及营养、、环境等因素的影响,人体合成透明质酸HA的能力逐渐下降,皮肤中透明质酸HA的含量会逐渐降低,人在胚胎时期体内透明质酸HA含量最高,出生后逐渐...

    276条评论 5126人喜欢 4920次阅读 929人点赞