今回の記事は、以下を参考に作成しました。
で、自分なりに「あれ?」って詰まったところ?を捕捉しつつ記載します。

こちらの記事にお世話になりました。
メインのやった内容はこちらなので、
並行して読んでいただけるとありがたいです。
https://qiita.com/yonaimineakio/items/0990648bbce64de7edfa

作業ディレクトリ作成 & ファイル配置

今までHomeにいたので、任意の場所に移動して、ディレクトリを作ってみました。

  $ mkdir go_doc
  $ cd go_doc/

ここで移動した「go_doc」ディレクトリに、以下のファイルを作成します。
(元記事参照)
・main.go
・Dockerfile

つまり、階層はこんな感じ。

任意の階層
∟ go_doc
∟ Dockerfile
∟ main.go

Dockerfile って何書いてんの?

で、この状態から、以下のDockerfileが何を定義しているのか、個人的に絵にしてみる。

     FROM golang:1.9
     mkdir /echo
     COPY main.go /echo
     CMD ["go", "run", "/echo/main.go"]
スクリーンショット 2019-11-11 10.00.22.png
スクリーンショット 2019-11-11 10.03.38.png
スクリーンショット 2019-11-11 10.08.49.png
スクリーンショット 2019-11-11 10.12.18.png

結果。
・ Dockerのベース定義
・ 実行ファイルの配置
・ 実行
っていう手順を書いてる、ってことなのかなー、と。
Dockerfile 自体には他にも定義できることがいっぱいあって、
これだけではないと思うんだけど、1ファイルの実行だけならこんな感じになるのかな。

イメージのビルド

さっき作ったDockerfileから実体を作成?

基本
$ docker image build -t イメージ名[:タグ名] Dockerfile配置ディレクトリのパス

基本の構文はこれ。イメージ名とタグ名は任意でいいみたい。
イメージ名とか、タグ名って何に使われてるんだろ?と思って調べてたら
こんな記事を見つけました。
https://qiita.com/t-yotsu/items/559731aca6300eef78ec

で、パスは同じ階層にいるから「.」になるんですな。

     $ docker image build -t example/docker:tag .
     Sending build context to Docker daemon  10.24kB
     Step 1/4 : FROM golang:1.9
      ---> ef89ef5c42a9
     Step 2/4 : RUN mkdir /echo
    ---> Using cache
    ---> 46ca04568ee5
   Step 3/4 : COPY main.go /echo
    ---> Using cache
    ---> 24719acca39b
   Step 4/4 : CMD ["go", "run", "/echo/main.go"]
      ---> Using cache
      ---> 03df9c7950f8
     Successfully built 03df9c7950f8
     Successfully tagged example/docker:tag

実行したらこんな感じになりました。

で、元記事を参考にコンテナの起動まで行いました。
その後、いざ実行しようと思ったらポートフォワーディングというのが必要だそうで。
これについては次回の記事で書きます。

なんか消化不良ですが今回はここまでー。

广告
将在 10 秒后关闭
bannerAds