docker学习之路

在复习数学准备考试之余,能够在晚上花点时间看一看docker,学习一下也算是一种娱乐和放松了吧。
这篇blog主要就是准备记录一些自己在学习docker路上的心得,即算是一个总结,也算是给自己以后回看留个备忘吧。
本文准备大体按照docker官方的教程一步一步学习下来,可能有的部分会就自己的一些尝试展开。

0.安装

我的安装环境是腾讯云上申请的服务器,系统是ubuntu 14.04。
因为这篇文章是写在安装完成三天后,就不细表当时安装的一番折腾了,就记录几个要注意事项:

  • ubuntu 需要是64位的
  • ubuntu 12.04(好像是这个版本号)是需要提前做一些准备,官网上都有提
  • 在运行docker的时候,需要使用管理员权限,似乎是因为需要access一个docker守护进程,并不知道这是不是固定的
    再提一下成功的方法吧:利用Docker 官方提供的一套安装脚本,Ubuntu 和 Debian 系统可以使用这套脚本安装:

    curl -sSL https://get.docker.com/ | sh

1.Hello World

按照程序员的惯例,在安装好环境之后,第一件事儿自然就是hello world了。所以此处我将docker的运行示例部分换成了官方的一个hello world的镜像。输入命令:

sudo docker run hello-world

因为此时是第一次运行这个镜像,所以本地是没有的,docker会自动连到docker hub上去搜索这个镜像并下载,等待它下载完成后自动运行就会出现如下提示

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the “hello-world” image from the Docker Hub.
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker Hub account:
https://hub.docker.com

For more examples and ideas, visit:
https://docs.docker.com/engine/userguide/

出现这些提示就说明咱们的docker已经成功的跑起来了!

2.Build Images

有了之前跑出来的hello world,接下来当然就是想试一试作为容器最著名的使用container来运行一个系统了。首先要做的是新建一个文件夹并在新建的文件夹下新建一个Dockerfile文本文件,在Dockerfile里面写入

FROM docker/whalesay:latest
RUN apt-get -y update && apt-get install -y fortunes
CMD /usr/games/fortune -a | cowsay

猜测这三行是类似于makefile文件中的指令一样,从命令本身很容易就能猜测出其实现的功能:


  • FROM(暂不确定是否一定要大写):表明当前镜像是基于什么镜像
  • RUN:在当前镜像编译前需要执行的指令
  • CMD:当镜像被container调用后需要执行的指令

注:RUN指令应该可以用别的方法替代,毕竟有的程序并不仅仅需要安装,还需要配置:先运行某个镜像,然后在镜像里安装配置好所有需要的程序之后,再编译镜像。
不过不知道为什么我总是没办法装上fortunes,所以为了更加深刻的体会这个编译的过程,我自己发挥了一下:给image装上python,再用python输出一段文本。根据上面那三行代码不难得出修改后的代码

FROM docker/whalesay:latest
RUN apt-get -y update && apt-get install -y python
CMD echo "print \"this is from python\"" > print.py && python print.py 

再运行命令:

sudo docker build -t my-hello .

此处要注意的是:不能少了最后的”.”,不负责任的猜测此处的”.”应该是指要build的Dockerfile所在的路径;另外第一次编译的时候需要一些时间去执行Dockerfile中的RUN指令,而当image已经在本地存在(此处为my-hello)时,已经安装过的部分就会跳过,编译速度会提高很多。
编译完成后,可以使用

sudo docker images

查看本地的镜像,发现多了一个名为my-hello的镜像,再使用命令

sudo docker run my-hello

就看到了来自python的文本了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值