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?

More than 1 year has passed since last update.

Docker 備忘録

Last updated at Posted at 2022-06-18

目的

Docker の学習をしたため、いつでも引き出せるようその備忘録を残す。

内容

構成

Docker

名称 内容
Docker ホスト Docker Engine をインストールしたアプリ(= Docker コンテナを動かすコンピューター)
Docker コンテナ システムの実行環境を隔離した空間
Docker イメージ 必要なファイルを全て固めたアーカイブパッケージ

コマンド

Docker Engine

// 権限付与
$ chmod 400 ~/docker_ec2.pem 

// ssh
$ ssh ubuntu@XX.XX.XX.XXX -i ~/docker_ec2.pem

// パッケージアップデート
$ sudo apt-get update

// 必要なパッケージのインストール
$ sudo apt-get -y install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

// GPG キーダウンロード
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

// Docker ダウンロードサイトを apt リポジトリに追加
$ sudo add-apt-repository \
> "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
> $(lsb_release -cs) \
> stable"

// パッケージアップデート
$ sudo apt-get update

// Docker Engine 他一式ダウンロード
$ sudo apt-get install -y docker-ce docker-ce docker-ce-cli containerd.io

// ubuntu で Docker を利用できるようにする
$ sudo gpasswd -a ubuntu docker

// ログオフ
$ exit

// Docker の確認
$ docker --version

Docker の brew install

$ brew install docker
$ brew install docker-compose
$ brew install docker —cask

基本コマンド

// docker run(docker pull/docker create/docker start をまとめたコマンド)
$ docker run -dit --name my-apache-app -p 8080:80 -v "$PWD":/usr/local/apache2/htdocs/ httpd:2.4

// 実行中のコンテナ一覧
$ docker ps

// 稼働中でないものも含めたコンテナ一覧
$ docker ps -a

// 再開
$ docker start my-apache-app

// ログ
$ docker logs my-apache-app

// 停止
$ docker stop my-apache-app

// 削除
$ docker rm my-apache-app

// docker image 確認
$ docker image ls

// docker image 削除
$ docker image rm httpd:2.4

// pull
$ docker pull httpd:2.4

// create
$ docker create --name my-apache-app -p 8080:80 -v "$PWD":/usr/local/apache2/htdocs/ httpd:2.4

// attach
$ docker attach my-apache-app

// 停止中のコンテナでシェル実行
$ docker run --name my-apache-app -it httpd:2.4 /bin/bash

// 実行中のコンテナでシェル実行
$ docker exec -it my-apache-app /bin/bash

永続化

// 現在のカレントディレクトリの状態を保存した上で、別の場所にカレントディレクトリを移動
$ pushd /tmp

// コピー
$ docker cp /tmp/index.html web01:/usr/local/apache2/htdocs

// 元のディレクトリに戻る
$ popd

// ボリューム作成
$ docker volume create --name mysqlvolume

// ボリューム確認
$ docker volume ls

// ボリュームの場所
$ docker volume inspect mysqlvolume

// 軽量 Linux システム busybox
$ docker run --rm -v mysqlvolume:/src -v "$PWD":/dest busybox tar czvf /dest/backup.tar.gz -C /src .

// tar コマンド確認
$ tar tzvf backup.tar.gz

ネットワーク

// ネットワーク確認
$ docker network ls

// コンテナの詳細情報(IP アドレス検索のため)
$ docker container inspect web01
$ docker inspect --format='{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}' web01
$ docker container inspect --format="{{.NetworkSettings.IPAddress}}" web01

// ネットワーク bridge の詳細情報
$ docker container inspect bridge
$ docker inspect bridge docker network inspect --format='{{range $host, $conf := .Containers}}{{$conf.Name}}->{{$conf.IPv4Address}}{{"\n"}}{{end}}' bridge

// 疎通確認
$ ping -c 4 172.17.0.2

// ネットワークを作成
$ docker network create mydockernet

// 接続
$ docker network connect mydockernet web01

// 切断
$ docker network disconnect bridge web01

docker compose

// python インストール
$ sudo apt install -y python3 python3-pip

// docker-compose インストール
$ sudo pip3 install docker-compose

// バージョン確認
$ docker-compose --version

// 実行
$ docker-compose up -d

// 確認
$ docker-compose ps

// コンテナ・ネットワーク削除
$ docker-compose down

// 停止
$ docker-compose stop

// 起動
$ docker-compose start

Dockerfile

// Dockerfile 起動
$ docker build -t myimage01 .

// 履歴
$ docker history --no-trunc myimage01

save

// ファイル保存
$ docker save -o saved.tar myphpimage

// ファイルサイズ確認
$ ls -al saved.tar

// ロードする
$ docker load -i saved.tar

// export
$ docker export -o exported.tar myphp02

// import
$ docker import exported.tar tmp_httpd

Docker Hub

// タグ付け
$ docker tag myexample fmyuk135/myexample

// push
$ docker push fmyuk135/myexample

// pull
$ docker pull fmyuk135/myexample

// ログアウト
$ docker logout

参考文献

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?