Skip to content

Docker系の知識

dockerコマンド

  • docker exec
  • 既に実行中のコンテナ内でこまんどを実行するためのコマンド
  • コマンド:
    • docker exec [オプション] コンテナ名(又はID) コマンド
    • オプション
    • -it インタラクティブモード(標準入力を開く+TTYを有効化)
    • -d デタッチモード(バックグラウンド実行)
    • -u ユーザー名 特定のユーザーで実行する
  • 例:

    • docker exec -it my_container /bin/sh
    • my_containerのシェルを開いて、対話的に操作できるようになる
    • docker exec my_container ls -l
    • my_container内でls -lを実行し、結果をホスト側に出力する
    • docker exec -u root -it my_container bash
    • root権限でコンテナ内のシェルを開く
    • docker exec -d my_container touch /tmp/testfile
    • my_container内で/tmp/testfileを作成し、バックグラウンドで実行
    • docker exec -it fan-club-management-db-1 psql -U myuser -d mydb
    • fan-club-management-db-1がpostgresの場合、後続のコマンドを用いて、DBにログインする
  • docker compose execコマンドは、docker-compose.yamlファイルで定義されたサービスのコンテナ内で、コマンドを実行するためのコマンド。

  • docker ps

  • 実行中のコンテナ一覧を表示
  • docker inspect <コンテナ名>
  • コンテナの詳細情報を取得
  • docker logs <コンテナ名>
  • コンテナのログを表示
  • docker attach <コンテナ名>
  • 実行中のコンテナにアタッチ
  • docker start <コンテナ名>
  • 停止しているコンテナを起動
  • docker stop <コンテナ名>
  • コンテナを停止
  • docker compose down
  • docker compose upで作成したコンテナ・ネットワーク・ボリューム・イメージを削除する
    • docker compose down --volumes
    • Composeファイルのvolumesセクションの名前付きボリュームを削除する。また、コンテナがアタッチしたアノニマス・ボリュームも削除。

bashからのpsqlログイン

    docker exec -it fan-club-management-db-1 psql -U myuser -d mydb
  • docker compose execコマンドは、docker-compose.yamlファイルで定義されたサービスのコンテナ内で、コマンドを実行するためのコマンド。

ログイン機能

  • ログイン機能を付ける目的は以下
  • 会員・管理者を区別したい
  • ユーザー毎のデータを扱いたい
  • セキュリティ保護

  • ログイン方式

  • セッション方式(Cookieベース)
  • サーバーがログイン状態を「セッション」として管理する。
  • ブラウザには「セッションID(Cookie)」が保存される。
  • 一般的なDjango/Rails/Laravelの構成
  • トークン方式(JWT:JSON Web Token)
  • ログイン成功時にトークンをサーバーが発行
  • クライアントはそれを保存(localStorage/sessionStorage
  • APIリクエスト時にAuthorization: Bearer<token>をヘッダに付与
  • FastAPIやNode.jsではこの構成が主流

LinuxへのPythonインストール

  • sudo apt update
  • sudo apt install python-is-python3
  • apt install pip python3-pip
  • pip install passlib

Git

  • メッセージ:Gitの"user.name"と"user.email"を構成していることを確認してください。
  • 対処法

    • git config --global user.name "ユーザー名"
    • git config --global user.email "メールアドレス"
  • 直前のコミットをなかったことにしたい

  • git reset --soft HEAD^
    • --softオプション
    • ワークディレクトリの内容はそのままでコミットだけを取り消したい場合に使用
    • --hardオプション
    • コミットを取り消した上でワークディレクトリの内容も書き換えたい場合に使用
    • HEAD^
    • 直前のコミットを意味する
    • HEAD~{n}
    • n個前のコミットを意味する
    • HEADの代わりにコミットのハッシュ値を用いることも可能
  • コミットの打ち消し
  • 作業ツリーを指定したコミット時点の状態にまで戻し、コミットを行う(コミットをなかったことにはせずm、逆向きのコミットをすることで履歴を残す)には、
    • git revert コミットのハッシュ値
  • コミットの上書き
  • コミットメッセージを変更したい時によく使う
    • git commit --amend