「インストール - Docker CE」の版間の差分

ナビゲーションに移動 検索に移動
編集の要約なし
編集の要約なし
84行目: 84行目:
<br>
<br>
また、管理者権限不要でDockerを使用する場合は、以下のコマンドを実行する。<br>
また、管理者権限不要でDockerを使用する場合は、以下のコマンドを実行する。<br>
  sudo usermod -aG docker $(whoami)
  sudo usermod -aG docker $(whoami)
<br><br>
<br><br>


110行目: 110行目:
  # 追記
  # 追記
  export DOCKER_HOST='tcp://localhost:2375'
  export DOCKER_HOST='tcp://localhost:2375'
<br><br>
== Dockerコマンド ==
ここでは、Dockerのコマンドを記載する。<br>
<br>
イメージの一覧表示<br>
sudo docker image ls
<br>
イメージの削除(IMAGE IDを指定する。IMAGE IDは上述の「イメージの一覧表示」で確認可能)<br>
sudo docker rmi -f <IMAGE ID>
<br>
コンテナの一覧表示<br>
sudo docker container ls
sudo docker container ls –all
<br>
イメージの実行(<IMAGE NAME>はイメージの名前であり、<COMMAND>はイメージ上で実行するコマンドである)<br>
sudo docker run <IMAGE NAME> <COMMAND>
<br>
実行コマンドが、/bin/bashのような対話型(インタラクティブ)なコマンドの場合は、-itオプションを指定する。<br>
sudo docker run –it <IMAGE NAME> /bin/bash
<br>
detachedモード(バックグラウンドモード)で実行する場合は、–dオプションを指定する。<br>
sudo docker run -d dockersamples/static-site
<br>
実行中のコンテナの一覧を表示する。<br>
sudo docker ps
<br>
コンテナの停止<br>
sudo docker stop <コンテナID>
<br>
コンテナの削除<br>
sudo docker rm <コンテナID>
<br>
コンテナの停止と削除を同時に実施する。<br>
sudo docker rm –f <コンテナID>
<br>
コンテナに名前をつける。(コンテナIDの代わりに指定可能)<br>
sudo docker run --name static-site -d dockersamples/static-site
<Br>
-Pオプションを指定すると、コンテナが使うポートがランダムにホストのポートにマッピングされる。<br>
sudo docker run -d -P dockersamples/static-site
<br>
-pオプションを使用すると、コンテナのポートをマッピングするホストのポートを指定できる。(以下の例は、ホストの12345ポートをコンテナの80ポートにマッピングする)<br>
sudo docker run –p 12345:80 dockersamples/static-site
<br>
どのポートにマッピングされたかはdocker psコマンドで確認できる。<br>
また、以下のコマンドでも確認できる。<br>
sudo docker port <コンテナID>
# 出力例
443/tcp -> 0.0.0.0:32770
80/tcp -> 0.0.0.0:32771
<br><br>
== Dockerイメージの作成 ==
Dockerイメージを作成するには、まず、Dockerfileを記述する必要がある。(Dockerfileはテキストファイルである)<br>
このDockerfileに、インストールするOSやライブラリを指定して、最後に、コンテナで実行したいソフトウェアを指定する。<br>
<br>
まず、Dockerfileでは、Base Imageを指定する。(例えば、OSのImageはBase Imageの一種である)<br>
Base Imageは"FROM"で指定する。以下の例は、CentOS 7を指定する例である。<br>
FROM centos:centos7
<br>
次に、コンテナが必要とするソフトウェアのインストール等を行う。(各OSのパッケージ管理システムを使用すると簡単である)<br>
CentOSであればyum、Ubuntuならaptを使用する。(yumやapt等のコマンドの実行は、RUNで行う)<br>
RUN yum install xxxx
<br>
特定のファイルをコンテナに埋め込むには、"COPY"を使用する。コンテナのどこにファイルを埋め込むのかを指定する。<br>
COPY <File Name> /home/xxx
<br>
コンテナが実行するソフトウェアが通信を行う場合、そのソフトウェアは特定のポート番号を使用する。(例えば、Webサーバであれば80番や443番を使用する)<br>
そのポート番号を、ホストOSのポート番号とマッピングする必要がある。<br>
マッピングは、コンテナを実行する際に使用するが、そのためには、コンテナのポート番号を公開する必要がある。<br>
それを行うには、"EXPOSE"を使用する。<br>
EXPOSE 80
<br>
コンテナが実行するソフトウェアは、"CMD"で指定する。<br>
CMDは、Dockerfileに1個だけである。諸々の準備の完了後、最後にCMDを指定する。<br>
CMD ["python", "/usr/src/app/app.py"]
<br>
以下の例では、pythonがコマンドで、その後は、コマンドに対する引数である。つまり、上記の例は、以下のコマンドをコンテナ上で実行することを意味する。<br>
python /usr/src/app/app.py
<br>
Dockerfileが完成したら、イメージを作成する。<br>
-tオプションを使用してイメージの名前を指定する。<br>
その後ろの"."は、Dockerfileがあるディレクトリのパスである。Dockerfileと同じディレクトリであれば、"."でoである。<br>
Dockerfileの内容が正しければ、イメージが作成される。<br>
sudo docker build -t xxxx/yyyy .
<br>
プロキシ配下でbuildする場合は、プロキシを設定する必要がある。<br>
例えば、コンテナ上でyumやaptを使用する場合は、プロキシの設定が必要である。<br>
環境変数は、"ENV"で指定できる。<br>
ENV https_proxy "http://proxy.hoge.server:8080/"
ENV http_proxy "http:// proxy.hoge.server:8080/"
<br>
<u>'''※注意(yum関連のエラー)'''</u><br>
yumのリポジトリが見つからないというエラーが表示される場合がある。<br>
標準のリポジトリではなく、特定のレポジトリを指定する場合、そのリポジトリを記載した設定ファイル(CentOS-Base.repoなど)をCOPYするように、<br>
Dockerfileに記載しておけばよい。<br>
COPY CentOS-Base.repo /etc/yum.repos.d/
<br>
yumの処理は、ユーザに対して"yes or no"を訊ねる場合があるので、自動的にyesと答えないと途中でイメージ作成が止まるので、以下のように記述する。<br>
CMD yum update –y
<br><br>
<br><br>


__FORCETOC__
__FORCETOC__
[[カテゴリ:SUSE]]
[[カテゴリ:SUSE]]

案内メニュー