初识Docker

咳...快光棍节了,妹子在外实习啊哭!只能在寝室里面玩 Docker 了。

起因就是陆神发现一个搭好 nginx-rtmp 的 docker(地址在此)。之前一直想做一个校内的直播平台,但因为懒。。。一直没搞,直到遇到这个方便的东西,啊哈,正好没玩过 Docker,就顺便感受一下 Docker 带来的神奇力量吧。

老规矩,同步撸博客,搞一点我就写一点

Getting Started

首先查了下具体什么是 Docker。简而言之,Docker是一个容器,内部有打包好的一些东西。至于有什么性质,请自行查询。

Getting Started with Docker for Mac

以下是官方给的步骤们:


  • install Docker
  • run a software image in a container
  • browse for an image on Docker Hub
  • create your own image and run it in a container
  • create a Docker Hub account and an image repository
  • create an image of your own
  • push your image to Docker Hub for others to use

  1. 要先下一个 Docker ToolBox,这速度太慢了。。我就用迅雷下了
  2. 打开 Docker Quickstart Terminal。 你就看那个代码在跑啊跑。。。最后出来一条萌萌的蓝鲸鱼
  3. 然后就可以找东西run了...

Docker Pull

hub.docker.com中找到了datarhei/nginx-rmtp是一个别人搭好的nginx-based rtmp-server。有了它,我就可以非常方便地启动一个 rtmp 服务器啦~~

输入这个命令,就可以 pull 下来了:

docker pull datarhei/nginx-rtmp

光棍节过完了,当时卡在了 docker pull 上,因为是 pull 的 hub.docker.com上 的,服务器在国外,实在是不忍直视。不过还好,终于 pull 完了。

之后,看了海洋哥分享给我的有关 Docker 的书,对 Docker 有了进一步的了解。所以先补充一些姿势吧!

( Boot2Docker || Docker Quickstart Terminal ) On Mac

在 Mac / Windows 平台上不能直接用 docker,所以官方给了对应系统的安装包。老版本的是Boot2Docker,新版本的是Docker Quickstart。

无论是哪个,其实都是包了一层 VirtualBox,然后再在虚拟化的环境下运行 docker。所以在和 docker 进行网络通信的时候,还需要配置好虚拟机与Mac之间的网络通信。

如何进 docker 里的命令行

exec 命令

> docker ps
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                    NAMES
6a0b7730897d        datarhei/nginx-rtmp   "/usr/local/nginx/sbi"   15 seconds ago      Up 15 seconds       0.0.0.0:1935->1935/tcp   insane_booth

> docker exec -ti 6a0b7730897d /bin/bash
root@6a0b7730897d:/# 

不太好用的 attach 命令

docker attach {docker_name}

原因是如果有多个 terminal 同时 attach 了同一个 image,那么就会同步显示。