Docker 使用笔记
安装
检查安装
$ docker version
$ docker info
Hello World
抓取官方 Hello World 案例
在Docker Hub查找其他容器
$ docker image pull hello-world
检查抓取成功
$ docker image ls
运行 Hello World
$ docker container run hello-world
Hello World 运行后终止,如要查看所有容器信息
$ docker container ls --all
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d16220290679 hello-world "/hello" 22 minutes ago Exited (0) 22 minutes ago cranky_bhaskara
对于一些服务性容器,需要使用kill
命令终止程序
$docker container kill d16220290679
终止运行的容器文件,依然会占据硬盘空间,使用rm
删除
$docker container rm d16220290679
制作 Docker 容器
我们用一个简单的 Go 程序做一个 Docker 容器,main.go
:
package main
import "fmt"
func main () {
fmt.Println("Hello World")
}
测试运行:
$ go run main.go
Hello World
创建 Dockerfile
文件:
# Start from golang image
FROM golang:1.12.7
LABEL maintainer="Hanggi"
# Copy everything from the current directory to the /app inside the container
COPY .. /app
# Set the Current Working Directory to /app inside the container
WORKDIR /app
# Install the packages and build
RUN go build main.go
# Run the executable
CMD ["./main"]
如果有需要可以添加 .dockerignore
来忽略一些不必要的文件,用法与 .gitignore
相同。
运行 image 文件:
$ docker image build -t go-hello-world .
# 或者
$ docker image build -t go-hello-world:0.0.1 .
使用 $ docker image ls
查看创建的 image
$ docker container run go-hello-world
如果这是一个服务就需要映射端口和 Shell:
$ docker container run -p 8080:3000 -it go-app /bin/bash