DockerをWindowsノートPCで触ってみた


会社でGCPを使っていて、いろいろ勉強しなければなりません。恥ずかしい内容ですが、備忘録として残しておきます。将来、GCPでデータ処理、データ蓄積をしたいなー、とも思っています。自宅でWindowsノートPCでTutorial 動かしました。

Windowsの設定: Hyper-V をONにする

  • 「Windowsの機能の有効化または無効化」で Hyper-V をONにして、再起動する。
  • 「Windows 管理ツール」から「Hyper-V マネージャー」を起動してみる。(今回は関係ないですが、仮想マシンはまだ何もありません。)

Docker Desktop for Windows を使ってみる。

  • Docker Hubで登録してからダウンロード。
    Downlaod Docker Desktop for Windows のボタンを押して指示に従っただけですが、CUIのdockerのツール一式がインストールされたようです。

  • 以下はtutorial をフォローしただけ。Power Shell で動かしました。

 git clone https://github.com/docker/doodle.git

./doodle/cheers2019 というディレクトリで、build して、ローカルで動かします。build してできるものはイメージと呼ばれるようです。ソースコードはGO lang で書かれていました。xxxxxはIDで、-t <イメージ名> です。

> docker build -t xxxxx/cheers2019 .

build する/イメージを作る(docker build)

build の設定は、同じディレクトリにあるDockerfile に書かれているものが読まれます。読んでもよく分かりません。

FROM golang:1.11-alpine AS builder
RUN apk add --no-cache git
RUN go get github.com/pdevine/go-asciisprite
WORKDIR /project
COPY cheers.go .
RUN CGO_ENABLED=0 GOOS=linux go build -a -ldflags '-extldflags "-static"' -o cheers cheers.go

FROM scratch
COPY --from=builder /project/cheers /cheers
ENTRYPOINT ["/cheers"]

ローカルで動かす (docker run)

 Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
 Run a command in a new container

ローカルで動かします。-i はコンテナの標準入力、-tはtty を利用するオプションだそうです。--rm はコンテナ終了時にコンテナ自動的に削除します。

> docker run -it --rm xxxxx/cheers2019

イメージを共有できるようにする (docker push)

Docker Hub registry にpush(shipする?)し、共有できるようです。

> docker login; docker push xxxxx/cheers2019

サンプルには他にsummer2019, halloween2019, birthday2019があり、全て同じような内容なようでした。。。