[Internal] Docker 学习讲座(入门级)
Docker是什么?
@IT 超入門Docker:第1集 什么是Docker 参考
尝试使用Docker进行开发
在本地安装Docker
Docker for Mac -> ネットワーク周りが微妙に特殊
Docker for Windows -> Windows10からなのが残念
Docker Toolbox -> Windows7は64bitOSである必要あり
VirtualBox+Vagrant -> たぶんいちばん汎用的
除此之外还有其他,但这一带可能是主流。
暂时用Docker实现Hello world!
$ docker container run hello-world
发生了什么事情?
-
- 从Docker Hub下载hello-world镜像(docker image pull)
- 在前台运行hello-world镜像
让我们来看一看hello-world的图片在做什么
看一下Dockerfile就可以明白。
考虑到这一点,开发的过程
-
- 确定基础镜像
-
- 创建Dockerfile
-
- 使用Dockerfile构建镜像(docker image build)
- 部署(执行)构建的镜像
在基本图像中进行操作并提交的方法也是可行的,但我认为这是一种反模式。
让我们尝试用Golang编写Hello World吧。
确定基本形像
我决定使用Golang的官方镜像(golang:1.7.5)。
当然,也可以选择一个全新的镜像并自行安装Golang。
撰写Dockerfile
FROM golang:1.7.5
COPY hello-world.go /src/
RUN go build /src/hello-world.go && rm /src/hello-world.go
ENTRYPOINT ./hello-world
package main
import "fmt"
func main() {
fmt.Printf("Hello world\n")
}
根据 Dockerfile 构建镜像。
$ docker image build . -t dockertest:1.0
部署(运行)创建的映像。
$ docker container run dockertest:1.0
在开始编写Dockerfile之前,我想尝试一些不同的东西。
我们可以在基础映像上执行bash并进行操作。
$ docker container run -it --rm golang:1.7.5 /bin/bash
暫時先到這裡吧,如果有指正,我會修正的。下次(是否有?)談一下容器之間的通訊吧。