GNU/Linux >> Linux の 問題 >  >> Panels >> Docker

一部のDOCKERコマンド

基本的なDockerコマンドをいくつか示します。
https://github.com/wsargent/docker-cheat-sheet

も参照してください。

Linuxに最新のDocker環境をインストールする:

curl -sSL https://get.docker.com/ | sh

OSXでDockerターミナルを起動します

bash --login '/Applications/Docker/Docker Quickstart Terminal.app/Contents/Resources/Scripts/start.sh'

情報: 名前に「/」が含まれていないコンテナ名は、基本的なパブリックコンテナテンプレートを示します
「/」が含まれるコンテナ名は、次の形式のユーザーコンテナを示します:username / BasicContainer
「:」が含まれるコンテナ名は、基本/ユーザーコンテナのサブバージョンとして通常使用されるタグ

インターネットDockerリポジトリで画像を検索する
docker search ubuntu

インターネットからローカルリポジトリにDockerイメージをダウンロードします
docker pull ubuntu:14.04

ローカルのDocker画像を一覧表示します:
docker images

自作のイメージ(myname / ubuntu:tmpl_1)をバックグラウンドで実行し、コンテナーにMyUbuntuという名前を付けます
docker run -itd --name=MyUbuntu myname/ubuntu:tmpl_1

コンテナで作業するためにアタッチします(後でbashを取得するには2 x Enterを押します)
docker attach MyUbuntu

コンテナを自動的に停止せずにコンテナから離れるには:
CTRL-P + CTRL-Q

コンテナbashで^D(またはexitコマンド)が発行されると、コンテナは停止します。再起動するには、例:
docker start MyUbuntu

実行中のコンテナを一覧表示する
docker ps
すべてのdocker(実行中および停止中)コンテナーのリスト
docker ps -a
コンテナの実行に関する注意:
docker run -t -i →^P^ Qでデタッチし、dockerattachで再アタッチできます
docker run -i →^P^Qでは切り離せません。 stdinを混乱させます
docker run →^P^Qでは切り離せません。クライアントをSIGKILLできます。 dockerattachで再接続できます

トラブルシューティング:
1)dockerコマンドを実行した後にこのエラーメッセージが表示された場合:
Error response from daemon: client is newer than server (client API version: x.xx, server API version: y.yy)
次のコマンドを実行して、バージョンを同期します。
docker-machine upgrade

Public(Internet)プルイメージから新しいローカルDockerイメージを作成する
####COMMITメソッド####
このイメージに基づいてコンテナーを実行する
docker run -t -i ubuntu:14.04 /bin/bash
注:bashプロンプトにあるコンテナIDを覚えておいてください(これに基づいて新しいコンテナIDを作成する必要があります)
例: root @ ba7cbe2cd3ce:/#(ba7cbe2cd3ceはコンテナID)
目的のソフトウェアパッケージをインストールします(apt-get update &&apt-get install…。)
例: apt-get update &&apt-get -y upgrade; apt-get install mc ssh fail2ban nmap ngrep iftop iotop htop
終了したら、
exit or ^Dを使用してbashから切断してコンテナーを停止します。
ここで、新しいイメージをローカルに保存します。
docker commit -m "My special container template" -a "My Name" ba7cbe2cd3ce myname/ubuntu:v001
これにより、変更されたコンテナがmyname / ubuntu:v001という名前の新しいイメージとしてローカルに保存されます
確認するには:
docker images

####「Dockerfile」メソッド
Dockerfileという特別なファイルを作成するディレクトリを作成します
新しいイメージの作成方法の説明が書き込まれます。
mkdir ubuntu_template_001
cd ubuntu_template_001
touch Dockerfile
mcedit Dockerfile

————–コンテンツ—————-
# This is a comment
FROM ubuntu:14.04
MAINTAINER My Name <mmyname @mydomain.com>
RUN apt-get update && apt-get install -y mc ssh fail2ban nmap ngrep iftop iotop htop
RUN apt-get -y install postfix

–ファイルを保存してから、次のコマンドを実行してイメージを作成します。
docker build -t myname/ubuntu_template_001 .
注:コマンドの最後にある「。」は、Dockerfileがどこにあるかを示します。
インストールのすべての出力と最後にイメージIDが次のように表示されます。
—> 8578743d7b30

–作成されたすべての画像を確認します:
docker images

結果:

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
<none> <none> 8578743d7b30 3 minutes ago 290 MB
myname/ubuntu v001 9bc5a639a1de 20 minutes ago 318.6 MB

– ID 8578743d7b30の画像に名前またはタグがないことがわかります。
ここで、名前を付けます:tag
docker tag 8578743d7b30 myname/ubuntu:v002

–画像リストをもう一度確認します:
docker images
結果:
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
myname/ubuntu v002 8578743d7b30 16 minutes ago 290 MB
myname/ubuntu v001 9bc5a639a1de 33 minutes ago 318.6 MB

–これで、この新しいイメージに基づいてコンテナを実行できます
docker run -it --name "Server2" myname/ubuntu:v002 bash -c 'service ssh start ; ifconfig eth0; bash'

ローカルリポジトリからの画像の削除
docker rmi michel/ubuntu:v002

ローカルDockerシステムからのコンテナーの削除
docker rm ContainerName
または
docker rm ContainerID
実行中の、接続されていないコンテナ内でプログラムを実行するには:
docker exec -t -i ContainerName bash -c 'command'


Docker
  1. Dockerの概要

  2. Dockerコマンドクイックリファレンスチートシート

  3. Dockerコンテナに静的IPを割り当てる方法

  1. DockerコンテナでMySQLを実行する方法

  2. DockerコンテナにVimをインストールする方法

  3. Dockerコンテナを一覧表示する方法

  1. Docker CMDとエントリポイントコマンド:違いは何ですか?

  2. 10Dockerセキュリティのベストプラクティス

  3. DockerコンテナにSSHで接続する方法