docker でコンテナ立ち上げ

2021-02-22

docker

ちょっとコンテナ試したいときにいつも忘れてるので

今さら聞けないDocker入門

拾ったDockerfileを実行したい場合はまずビルド

1
$ docker build -t some-name .
  • docker build
    Dockerfileからコンテナイメージ作成

  • -t
    コンテナイメージ名を指定
    コロン:で区切って指定すると 名前:タグに。区切らなければタグはlatest

  • .
    Dockerfileのパス

他にも

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$ docker build -h
Usage:  docker build [OPTIONS] PATH | URL | -
Options:
      --add-host list           Add a custom host-to-IP mapping (host:ip)
      --build-arg list          Set build-time variables
      --cache-from strings      Images to consider as cache sources
      --disable-content-trust   Skip image verification (default true)
  -f, --file string             Name of the Dockerfile (Default is 'PATH/Dockerfile')
      --iidfile string          Write the image ID to the file
      --isolation string        Container isolation technology
      --label list              Set metadata for an image
      --network string          Set the networking mode for the RUN instructions during build (default "default")
      --no-cache                Do not use cache when building the image
  -o, --output stringArray      Output destination (format: type=local,dest=path)
      --platform string         Set platform if server is multi-platform capable
      --progress string         Set type of progress output (auto, plain, tty). Use plain to show container output (default "auto")
      --pull                    Always attempt to pull a newer version of the image
  -q, --quiet                   Suppress the build output and print image ID on success
      --secret stringArray      Secret file to expose to the build (only if BuildKit enabled): id=mysecret,src=/local/secret
      --ssh stringArray         SSH agent socket or keys to expose to the build (only if BuildKit enabled) (format: default|<id>[=<socket>|<key>[,<key>]])
  -t, --tag list                Name and optionally a tag in the 'name:tag' format
      --target string           Set the target build stage to build.

例えばmysql5.7のコンテナを起動

run

1
$ docker run --name some-mysql -e MYSQL_USER=root -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=some_database mysql:5.7
  • docker run
    コンテナ立ち上げ

  • --name
    コンテナ名を指定

  • -e
    環境変数を指定
    上記の場合user: root/password を作成してsome_database というdatabaseを作成します
    rails db:create とか必要なくなるので便利

  • mysql:5.7
    コンテナイメージを指定

コンテナの中でなにかしたい

exec

1
$ docker exec -it some-mysql bash
  • docker exec
    実行中のコンテナでコマンドを実行

  • -i
    標準入力を受け付けるように

  • -t
    疑似ターミナルの割り当て
    ターミナルからSSHしたように振る舞える

  • some-mysql
    コンテナ名を指定

  • bash
    実行コマンド

コメント

投稿する

投稿したコメントはご自身で削除できません

不適切なコメントと判断した場合は管理側で削除することがあります