この記事の目的
dockerの基本操作について記述する
dockerの通常運用
dockerのインストール
dockerインストールの確認
$ docker --version
dockerイメージの準備(Docker Hubから取得)
以下はMySQLの例
// mysqlのdockerイメージをプル
$ docker pull mysql
// 存在するdockerイメージの確認
$ docker images
dockerコンテナの起動(Docker Hubから取得)
以下はMySQLの例
// mysqlのdockerコンテナ起動(docker Hub)
- $ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
// mysqlのdockerコンテナ起動(docker Hubカスタマイズ)
+ $ docker run --name ks-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql
※上記はコンテナ側の環境設定をしている
※上記の:tagはdocker HubにあるTagsにあるバージョンを設定する
今回はlatestなので省略する
※-pでポートフォワディングの設定(ローカル:コンテナ)
// dockerコンテナ起動の確認
$ docker ps
// dockerコンテナ起動の確認
$ docker ps
// dockerコンテナの中に入り、コンテナ内で操作
// ks-mysqlコンテナ内で操作
$ docker exec -it ks-mysql bash
// mysqlにログイン
bash-4.4# mysql -u root -p
// mysqlの操作
mysql> CREATE DATABASE ks_db;
mysql> exit
// コンテナから抜ける
Ctrl + P + Q
// 起動中のコンテナを確認
$ docker ps
// コンテナの停止
$ docker stop ks-mysql
// 起動中のコンテナを確認
$ docker ps
// すべてのコンテナを確認
$ docker ps -a
// コンテナの起動
$ docker start ks-mysql
// 起動中のコンテナを確認
$ docker ps
ローカル側からコンテナ内のデータを確認する
// ローカル側でMySQLサーバ起動
$ mysql.server start
※mysqlログインできなかったのでそちらの対処
// サーバの停止
$ mysql.server stop
// セーフモードで起動
$ mysqld_safe --skip-grant-tables &
// 別コマンドラインでmysqlに接続
$$ mysql
// ユーザ設定の確認
$$ mysql> use mysql
$$ mysql> select Host, User, authentication_string from user;
// ユーザをすべて削除
$$ mysql> truncate table user;
// GRANTテーブルからすべて再読み込み
$$ mysql> flush privileges;
// rootユーザを再作成
$$ mysql> CREATE USER 'root'@'localhost' IDENTIFIED BY 'PASSWORD';
$$ mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
$$ mysql> FLUSH PRIVILEGES;
※上記でも上手くいかなかったので、MySQLの再インストール
// mysqlの停止
$ mysql.server stop
// homebrewのインストール内容を確認
$ brew list
// homebrew内でアンインストール
$ brew uninstall mysql
// homebrew内でインストール
$ arch -arm64 brew install mysql ※1 arch -arm64をつけないといけない
※1 homebrewでmysqlのインストール時のエラー対処
Cannot install under Rosetta 2 in ARM default prefix (/opt/homebrew)!
※homebrew内でmysqlを再インストールしたけどできなかったので
おそらくmysqlの環境構築の問題→これは後日対応するとして先に進む
コンテナの停止と削除
// コンテナの停止
// コンテナの削除
// イメージの削除