Dockerチュートリアル:dokcerの構成とコマンド

7396 ワード

http://blog.csdn.net/pipisorry/article/details/50803028
Dockerコマンドクエリー
端末はdockerコマンドを実行し、使用可能なすべてのコマンドのリストと使用説明を印刷します:#docker
コマンドの具体的なパラメータと使用方法を表示します:#docker run--help
Docker環境の表示
docker info
docker未実行時表示:FATA[0000]Gethttp:///var/run/docker.sock/v1.18/info: dial unix/var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS? 
実行時の表示:
Containers: 29Images: 25Storage Driver: aufs Root Dir:/var/lib/docker/aufs Backing Filesystem:  Dirs: 83 Dirperm1 Supported: trueExecution Driver: native-0.2Kernel Version: 4.2.0-35-genericOperating System: Ubuntu 14.04.4 LTSCPUs: 4Total Memory: 7.621 GiBName: pikaID: SQ73:OQIM:4OUF:W6BK:LW22:6DAL:7W5S:OTEC:PGYM:IJOW:H355:DUBRWARNING: No swap limit support
Dockerサービスのステータスの確認
Dockerサービスが起動していることを確認します
root@pika:/home/pi# service docker status
Note:このコマンドはrootで実行しなければなりません.sudoもだめですか.$sudo service docker restart stop: Unknown job: docker
停止docker
#service docker stop
dockerの起動
#service docker start
Dockerをセルフスタートサービスにインストールする
サーバの起動に伴って自動的に実行させます.
# update-rc.d docker defaults
Configure Docker to start on boot:
$ sudo systemctl enable docker
ユーザー権限の追加
rootユーザーの操作でない場合は、Dockerユーザーグループにユーザーを追加できます.これにより、Dockerを操作するときにsudoコマンドを使用する必要がなくなります.
root:/home/pi#gpasswd-a pi dockerユーザー「pi」を「docker」グループに追加中
logout再login後、piユーザーを使用するとdockerコマンドを実行できます.そうしないと、接続エラーが表示されます.
もちろん、rootユーザーの使用を回避し、dockerユーザーグループのユーザーにrootと同じ権限を持たせるdockerユーザーグループを作成することもできます.
# usermod -aG docker ubuntu
Dockerテスト
docker run hello-world
Docker教程:dokcer的配置和命令_第1张图片
Note:DockerレジストリサーバはDocker Hubから最新のHello Worldミラーを取得し、ローカルにダウンロードしました.Hello Worldミラーを再実行できます.
このイメージがローカルにある場合はコンテナを作成し、そうでない場合はパブリックウェアハウスからダウンロードします.
皮のblog
Dockerで使用可能なミラーの表示
Dockerの公式サイトには、利用可能なすべてのミラーを格納するウェブサイトがあります.このページを参照して、使用したいミラーを検索することができます(ログインする必要があります).
またはコマンドラインのツールを使用して取得します.CentOSのDockerコンテナ#docker search centosを検索するには、次のコマンドを使用します.
Dockerミラーのダウンロード
Docker登録サーバのソフトウェアウェアハウスからDockerのミラーをダウンロードするミラーを引き出します.
# docker pull ubuntu:14.04
# docker pull ubuntu
Dockerコンテナの実行:新しい仮想マシンにインタラクティブにアクセス
Bash Shellの下でUbuntuコンテナを構築するのは簡単で、1行のコマンドを実行するだけでいいです.
-iオプション:入出力を標準コンソールで行う-tオプション:ttyを割り当てる
root:/home/pi#docker run-it ubuntu bash#または/bin/bashroot@dce1a8276a18:/# 
終了はctrl+dまたはctrl+cを使用できます
またはctrl+p+ctrl+q(これはシンクホストに終了することができ、containerがまだ実行されていることを維持し、docker psで見ることができる)
[docker run: Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]]
Dockerディレクトリマウント
docker run -v local-dir:host-dir image-name
コンテナディレクトリは相対パスではありません.ホストディレクトリが存在しない場合、自動的に生成されます.
docker run -ditP -v "$PWD/data":/root/vatic/data image-name
[Dockerディレクトリマウントの概要]
コンテナをバックグラウンドで実行
docker run -dit
sshバックグラウンドコンテナ長時間運転
数秒後にコンテナがdocker run-d-p 22-p 80:8080 python_を自動的に終了することはありません.ubuntu/usr/sbin/sshd-Dのうち:
-dは容器をバックグラウンドで動作させることを示す
-pポート設定を指定します.ここでubuntuコンテナ内で動作しているSSH Serverは22ポートを占有します.
-p 80:8080はポートのマッピングを表し、ホストポートをコンテナにマッピングし、外部からコンテナ内サービスにアクセスしやすく、ホストポート80は省略でき、省略はコンテナポート8080を動的ポートにマッピングすることを表す.ubuntuは8080ポートでsshを実行しますが、外部(コンテナ外)にマッピングされたポートは80です./usr/sbin/sshdはsshサービス-Dを起動することを示し、数秒後に終了するまでdocker psコマンドでコンテナが正常に動作したかどうかを確認することができ、コンテナに****SSH接続ポート番号がランダムに付与されていることが分かった.
ホストでsshコマンドを使用してこのコンテナにログインします.
ssh [email protected] -p ****
Note:ミラーインスタンスを起動するとき、-p 80:8080を指定し、コンテナは8080ポートを開放し、ホストポートにマッピングすると80になります.ホストIPアドレスを知っていれば、コンテナに自由にアクセスできます.ホストで、curlでテストすればいい:curlhttp://192.168.*.*.もちろん、ブラウザでアクセスすることもできます.実際のところ、SSHは80ポートを直接公開しない可能性があります.一般的にnginx/apacheまたはファイアウォールの後ろにあります.
実行中のコンテナdocker psのリスト

docker inspectコマンドを使用すると、コンテナに関するより詳細な情報を表示できます.ミラーidの前の部分を使用することができ、完全なidは必要ありません.
すべてのコンテナdocker ps-aをリストします
(実行中のコンテナと終了したコンテナを含む)
ローカル(ダウンロード済みおよびローカルで作成された)ミラーdocker imagesのリスト

ミラーから新しいインスタンスコンテナを実行するdocker runコンテナを停止するdocker stop
存在するコンテナdocker rename oldの名前を変更します.name new_name
Note:imageではなく、実行中です.つまりdocker psのコンテナ名を変更します.
1つ以上の指定されたミラーdocker rmiをローカルから削除
docker rmi [options "o">]  "o">[image...] またはdocker rmi image_id-fは、使用中であってもミラーを強制的に除去する.No-pruneは、ミラーのプロシージャミラーを除去せず、デフォルトで削除します.
docker rmi nginx:latest postgres:latest python:latest
ミラーの履歴バージョンを表示するには、次の手順に従います.
docker history (image_name)
ミラーをregistryにプッシュ:
docker push (image_name)
指定したコンテナdocker rmをローカルから削除
docker rm [options "o">]  "o">[container...]docker rm nginx-01 nginx-02 db-01 db-02 sudo docker rm-l/webapp/redis-f実行中であっても容器を強制的に除去します.-lコンテナ自体ではなく、コンテナ間のネットワーク接続を削除します.-vコンテナに関連付けられた空間を除去します.
Dockerホストからdocker imagesにファイルをコピー
docker runコマンドによる-v/--volumeパラメータ
#docker imagesREPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZEubuntu              14.04               c917d6497f55        7 weeks ago         188 MB
ネイティブディレクトリ/media/pika/softares/Downloads/LinuxInstallsをDockerの/mntディレクトリに共有
#docker run -v/media/pika/softwares/Downloads/LinuxInstalls:/mnt -it c917d6497f55 bash
root@f26f7d459863:/# ls/mntFirefox-latest-x86_64.tar.bz2        hadoop-2.6.4.tar.gzdesktop.ini                          jdk-8u91-linux-x64.tar.gzeclipse-jee-mars-2-linux-gtk.tar.gz  pdfstudio
もちろんdockerfileファイルのADDメソッドでも
[dockerがホストからファイルをコピーする方法]
[Dockerコンテナの内外でデータをコピーする方法]
[他の15個のDockerコマンド]
皮のblog
コンテナ運転の一例
バックグラウンドプロセスでhello dockerを実行する:sample_job=$(docker run -d ubuntu/bin/sh -c "while true; do echo Docker; sleep 1; done")sample_ジョブコマンドは1秒おきにDockerを印刷し、docker logsを使用して出力の結果を表示します.このjobに名前を付けなければ、このjobにはidが割り当てられ、docker logsなどのコマンドを使用してログを表示するのは面倒になります.docker logsコマンドを実行してjobの現在のステータスを表示します:docker logs$sample_jobのすべてのDockerコマンドは、docker help名sample_というコマンドで表示できます.jobのコンテナは、docker stop$sample_というコマンドで停止できます.jobは次のコマンドを使用してコンテナを再起動します:docker restart$sample_jobコンテナを完全に除去するには、除去する前にコンテナを停止する必要があります.このように:
docker stop $sample_job
docker rm $sample_jobはコンテナの状態をミラーとして保存し、docker commit$sample_を使用します.job job 1ミラー名は、文字[a-z]と数字[0-9]しか取れないことに注意してください.
Dockerの一般的なソフトウェアのインストール
root@dc34d732b74d:/# apt-get update
root@dc34d732b74d:/# apt-get install -y git
root@dc34d732b74d:/# apt-get install -y make
root@dc34d732b74d:/# apt-get install -y g++
root@dc34d732b74d:/# apt-get install -y ssh
root@dc34d732b74d:/# /etc/init.d/ssh start#sshfromを起動する:http://blog.csdn.net/pipisorry/article/details/50803028
ref:その他のコマンド:Dockerコマンド使用の詳細