0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Docker コマンド + 学習したことの備忘録

Last updated at Posted at 2024-09-15

実行中のコンテナを確認

docker ps -a

docker imageの作成(dockerfileを作成して)

# IMAGE名は小文字で記述する

docker build -f ./Dockerfile -t IMAGE:TAG .
docker build -f ./Dockerfile -t opencti:bash .

#もしくわ

docker build -f ./Dockerfile -t opencti:latest .

コンテナの起動

docker run -it IMAGE

すべてのコンテナを停止

docker stop $(docker ps -aq)

コンテナの一括削除(コンテナを停止してから)

docker rm $(docker ps -aq)

1行で実行

docker stop $(docker ps -aq) && docker rm $(docker ps -aq)

Processを切ってコンテナから出る

exit

exitしたらコンテナを削除する

docker run -it -rm containerID TAG

Processを残したままコンテナから出る

docker detach

コンテナの再起動

docker restart

実行中のコンテナ内でコマンドを実行する

docker exec containerID command

commitして更新する

docker commit containerID IMAGE:update

Imageを別名で保存する

docker tag IMAGE:update userName/repoName

Docker Hubにpushする

docker push userName/repoName

docker インストラクション

FROM -> OSを指定する

RUN -> RUN毎にレイヤーが追加される

最小限のレイヤーにするためにコマンドは&&で繋ぎ、\で改行する

インタラクティブなインストールにはオプションの-yを指定する。

USING CACHE

docker fileはCACHEを使って作成し、

コマンドが通るのを確認してからRUNにまとめて書く。

COPY -> ファイルのコピー

COPY文は&&繋げない

COPY fileName PATH

ADD

tarファイルをコピーして解凍する

CMD -> ファイルの最後に記述する

# CMDと[]の間にはスペースが必要

CMD ["COMMAND","PARAM1","PARAM2"]

WORKDIR

実行ディレクトリを変更する

WORKDIR 絶対PATH

ENV -> 環境変数の設定

ENV key value

ホストとコンテナの関係

ホストのファイルシステムをコンテナにマウントする

# DIR=任意の名前、newDir/にホストにあるファイルが見える(コンテナにファイルがあるわけではない)
# ホストのファイルを更新するとプロンプトにupdatedと表示される
# dirの作成はdockerが行ってくれる(:/newDir)

docker run -v ~Desktop/DIR:/newDir IMAGE TAG

ユーザIDとグループIDを指定してコンテナをRUNする

docker run -it -u $(id -u):$(id -g) -v ~Desktop/DIR:/newDir IMAGE TAG

# コンテナではユーザIDを認識しない(I have no name)

ホストとコンテナをポートを指定して繋げる

docker run -p 8888:8888 IMAGE TAG

:sunglasses: Memo

コンテナは実行環境として使用し、ホストのファイルシステムをコンテナにマウントする

DockerHubで命名するリポジトリ名は - で繋ぐ

my-repo123

docker build -t でimage名を指定しないとダンクリングイメージが生成される

# ダングリングイメージは<none>と表示される

<none> 

# そのため、docker build -t でimage名を指定してimageを作成する

ファイルサイズを考慮して作成する


build context(docker_dir)について

  • buildに使わないファイルはbuild contextに格納しない。

  • 大きいファイルはtarで圧縮してADDで解凍する

  • オプション -f(dockerfileが複数ある場合)

docker build -f PATH/fileName .

パーミッション(アクセス権限)

# Iから始まるのはシムリンク、dから始まるのはディレクトリ、-から始まるのはファイル

# r:読み取り、w:書き込み、x:実行

# 所有者、所有グループ、その他の順に表示される

コンテナがアクセスできる上限のCPUを設定

# 重要度の高いコンテナ: 2-4コア
# 中程度の重要度のコンテナ: 1-2コア
# 軽量なコンテナ: 0.5-1コア

docker run --cpus=2 your-image

コンテナがアクセスできる上限のメモリを設定

# 大規模なアプリケーション: 32-64GB
# 中規模のアプリケーション: 8-16GB
# 軽量なアプリケーション: 1-4GB

docker run --memory=16g your-image

ログ管理

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?