Docker で自身の作成したプログラムを動作させるためにはDockerイメージを作成する必要があります。Dockerイメージを作成するための定義ファイルをDockerfileと呼びます。
# DockerfileFROM alpineRUN apk add curlENTRYPOINT [“/usr/bin/curl”]
Docker Hub には様々なイメージがありますが自分だけの環境を作りたくなることがあります。またその環境をバックアップとして保存したり、別のマシンや他の人と共有したいことがあります。このような場合はイメージを出力しファイルとして扱います。
最初にベースイメージを選択する必要があります。慣れている環境で良いと思いますが、特にこだわりがなければ alpine ベースのものがサイズが小さくてオススメです。
コンテナ間ではIPアドレスが分かっていれば特に制限なく接続することができます。IP アドレスは docker inspect コマンドで調べることができます。
$ docker inspect \--format "{{.NetworkSettings.Networks.bridge.IPAddres}}" webserver172.17.0.2
多くの有名なOS(ディストリビューション)にはパッケージマネージャがあり、有志が公開しているプログラムを簡単にインストールすることができます。macOS には homebrew というパッケージマネージャがあります。
インストールしたプログラムが単体のコマンドとして使えるようなものはそれで良いのですが、MeCab のようにコマンドの他に辞書に依存するようなプログラムは環境を構築するのが難しい人もいます。このような場合は公開されている MeCab の Docker コンテナを使うのが良いでしょう。私が作成した MeCab の…
動作している Docker コンテナに入って作業をしたり確認をしたいことがあります。このような時は docker exec コマンドを使います。docker exec にはコンテナIDまたはコンテナ名を指定する必要があるので docker ps で動作中のコンテナを調べます。
$ docker ps --format "table {{.Image}} {{.Names}}"IMAGE NAMESnginx webserver
Docker ではコンテナはホストOSとは隔離して実行されます。このため、ホストOSのファイルをコンテナで使いたい場合は mount オプションを使いホストOSのディレクトリやファイルとコンテナのディレクトリやファイルを紐づける必要があります。
$ echo "hello, docker!" > index.html$ docker run --publish 8080:80 --mount type=bind,source=$PWD,target=/usr/share/nginx/html/…
docker のインストールが完了していれば実行するのは簡単です。Webサーバーの nginx を動かすには以下のように run コマンドを使用します。
$ docker run nginxUnable to find image 'nginx:latest' locallylatest: Pulling from library/nginx802b00ed6f79: Downloading [==============> ]…
Docker を利用するために dockerd と docker コマンドをインストールする必要があります。dockerd がコンテナを管理し、docker コマンドで dockerd にリクエストを送り制御します。
Ubuntu などの Linux であればパッケージマネージャーを使ってインストールできます。macOS と Windows にはそれぞれ Docker for Mac と Docker for Windows があります。以降は macOS + Docker for Mac…
このコンテンツは書きかけです。Mediumの仕様上、ページを公開する必要があるため公開しています。
これはうちの会社でDockerの利用推進を行うにあたって知識を共有しスムーズに導入することを目的に書かれたものです。特に非エンジニアであっても社内ツールとして共有されたDockerイメージを実行できるようにすることを第1目標としています。また、第2の目標は任意の Docker イメージを作成し共有できるようになることです。