サーバ

スポンサーリンク
Docker

[docker] Docker Composeで作成したコンテナの名前

概要 Docker Composeでコンテナを作成すると「プロジェクト名_サービス名_1」というコンテナ名が自動的に付けられる。(サービス名=compose.yamlのservicesに書いた名前) ただし、compose.yaml内でコンテナを指定するときはサービス名を使う。 よって、compose.yaml内ではサービス名、dockerコマンドでは自動的に付けられたコンテナ名、を使ってコンテナ...
Docker

[docker] DockerfileのCMDとENTRYPOITNTの違い

概要 Dockerfileに記述できるCMDとENTRYPOITNTは、どちらも「コンテナ起動時に実行するコマンド」を記述するための命令である。どちらもDockerfileに1つだけ記述することができる。 CMDとENTRYPOITNTの違いは「コンテナ起動時の引数やcompose.yamlで上書きできるかどうか」である。 CMD: compose.yamlなどで上書き可能 ENTRYPOITNT...
Docker

[docker] コンテナのネットワークとは?

概要 Dockerコンテナを他のコンテナやホストと通信させるためには、コンテナ=コンテナ、コンテナ=ホスト、のネットワークが必要である。 ネットワークには、Dockerがデフォルトで用意しているネットワークとDocker Composeなどでユーザーが作成したネットワークがある。 デフォルトのネットワーク Dockerはデフォルトで以下の3つのネットワークを作成する。 bridgeコンテナ間、コン...
スポンサーリンク
Docker

[docker] ボリュームマウントとバインドマウントの違い

概要 dockerではコンテナを削除するとデータが消えてしまうが、データを永続化することでコンテナが削除されてもデータを残すことができる。 データの永続化にはボリュームマウントとバインドマウントがあり、データが保存される場所が異なる。公式では、データの移行やバックアップが容易なボリュームマウントが推奨されている。ただし、開発環境ではファイルの変更をリアルタイムで反映できるバインドマウントを使うのが...
AWS

[AWS] リザーブドインスタンスとSavings Plansの違い

概要 AWSのリザーブドインスタンスとSavings Plansは共に利用料金が割引になる料金モデルだが、対象サービスなどが異なる。 以下、簡単な表にまとめてみた。 リザーブドインスタンスとSavings Plansの主な違い リザーブドインスタンスSavings Plans割引内容「特定のインスタンスタイプとリージョン」の利用を1年契約または3年契約で結ぶ「xxxドル/時間」での利用を1年契約ま...
サーバ

[MySQL]外部キー追加で「#1215 – 外部キー制約を追加できません。」となってしまう原因

概要 MySQLで既存のカラムに後から外部キーを追加しようとすると「1215 - 外部キー制約を追加できません。」となり追加できないことがある。 原因 親テーブルと子テーブルのカラムのデータ型が異なっていることが原因である。例えば以下のSQLの場合、users.item_idとitems.idのデータ型が違う場合は#1215エラーとなる。 ALTER TABLE `users` ADD CONST...
サーバ

[MySQL][Postgres]外部キーがあるテーブルをTRUNCATEする方法

概要 データベースで外部キーがあるテーブルをTRUNCATEしようとするとエラーとなってしまう。例えば、MySQLの場合はCannot truncate a table referenced in a foreign key constraintとなり、TRUNCATEすることができない。 解決方法 一時的に外部キー制約を無効化することで、TRUNCATEすることができる。 MySQLの場合 se...
サーバ

「REMOTE HOST IDENTIFICATION HAS CHANGED」の解決方法

概要 SSHでサーバ側のホストキーが変更されると、SSH接続を試みた際に以下のようなエラーとなり接続することができなくなる。 GitHubやBitbucketのホストキーが更新されることがあり、ある日突然リポジトリへpushなどができなくなるのはこれが原因である。 解決方法 SSHクライアント側の.ssh/known_hostsファイルにある古いホスト情報が残っているのが原因であるため、それを削除...
Docker

[docker] MySQLで日本語が文字化けしてしまう場合の解決法

概要 dockerのMySQLコンテナはそのまま使うと日本語が文字化けしてしまう。MySQLの設定ファイルmy.cnfで文字コードを指定することで、文字化けを解消することができる。 手順 1. my.cnfを用意し、任意のディレクトリ内に格納する ここではmysql/my.cnfとする。 character_set_server = utf8mb4 collation-server=utf8mb4...
サーバ

[MySQL]バックスラッシュが含まれたデータがインポートできない場合の解決法

概要 mysqldumpなどで生成したSQLデータにバックスラッシュのデータが含まれている場合、インポート時にYou have an error in your SQL syntaxとなってしまうことがある。 原因 MySQLのバージョンや設定によって状況は異なるが、エクスポートするMySQLとインポートするMySQLのcharsetやcollationの相違が原因と考えられる。 解決方法 インポ...
スポンサーリンク