見出し画像

Dockerの取り急ぎ構築マニュアル

容量を節約しつつ、イメージを利用していろいろな環境構築が可能ということで、今後の勉強を効率的に行うためにDockerを学んでみました。

docker composeはまだよくわからないので、とりあえずコマンドをポチポチして動きのルールから勉強したoutputになります。

やったこと

・ubuntu, mysql, jupyter notebook, rocker, WordPressのコンテナの作成

この記事のスタンス

・コンテナの作成にあたって、コマンドの簡単な解説をしました。
・正確な説明より、とりあえず動かすことを目的としています。

共通の流れ:コンテナのライフサイクル

1.作成:
 docker hubからイメージ(コンテナの設計図)をダウンロード

#dockerHubなどのリポジトリからイメージをダウンロードする

#docker pull [イメージ名]:[バージョン]の順で書く
> docker pull ubuntu:18.04

2. 起動:
コマンドプロンプトでrunコマンドを実行

#Dockerイメージをダウンロードし、コンテナを作成して起動する(ダウンロードは必要な場合のみ)。
#docker image pull, docker container create, docker container startの一連の動作をひとまとめにしたもの
#docker run [イメージ名]:[バージョン]

> docker run ubuntu:20.04

#主なオプション
--name [コンテナ名]    #コンテナ名を指定する
-e [環境変数名]=[値]    #環境変数を指定する
-p [ホストのポート番号]:[コンテナのポート番号]    #ポート番号を指定する
-v [ホストのディスク]:[コンテナのディレクトリ]    #ボリュームをマウントする
-d    #バックグランドで実行する
-i    #コンテナに操作端末(キーボード)をつなぐ
-t    #特殊キーを使用可能にする​

3. 停止:
コンテナを削除するには必ず停止する必要がある。

> docker stop [コンテナ名]

4. 破棄:
コンテナを削除する

> docker rm [コンテナ名]

・よく使うコマンド:

#動いているコンテナの一覧を表示する
> docker ps

#存在するコンテナの一覧を表示する
> docker ps -a

#コンテナの改造を行う際に内部に入るコマンド
> docker exec -it [コンテナ名]

コンテナの作成例

Ubuntu

Debian GNU/Linuxを母体としたオペレーティングシステム。Linuxディストリビューションの1つであり、フリーソフトウェアとして提供されている。

安定版は18.04になります。

#イメージのダウンロード
> docker pull ubuntu:20.04

#コンテナの作成と起動
> docker run -it -d --name ubuntu_1 ubuntu:20.04

#実行中のコンテナ内で、プログラムを実行する
> docker exec -it ubuntu_1 /bin/bash
# exitで離脱

#コンテナの停止
> docker stop ubuntu_1

#コンテナの削除
> docker rm ubuntu_1

#起動中のコンテナの確認
> docker ps

mySQL

オープンソースのリレーショナルデータベース管理システム。
Dockerでコンテナを作ることで、簡単に練習環境を整えることが可能になった。

> docker pull mysql:latest

#usernameはデフォルトでrootに設定、paswordはabcde
> docker run --name mysql_1 -v [実際の記憶領域パス]:[コンテナ内の記憶領域パス] -e MYSQL_ROOT_PASSWORD=abcde -d mysql

#mysql環境に入る
> docker exec -it mysql_1 /bin/bash

#mysqlを起動
> mysql -u root -p
#パスワードを入力

> docker stop mysql_1
> docker rm mysql_1

rocker/rstudio

rockerはベーシックなR単体のイメージをベースに、様々なバリエーションが含まれている。
rocker/rstudioは「rocker/r-ver + Rstudio Server」で構成されている

#イメージの取得(バージョン情報は今の所なし)
> docker pull rocker/rstudio

#コンテナの起動
> docker run -d --name rocker_1 -p 8787:8787 -v C:\Users\ryuichi1117\desktop\docker\rocker:/home/rstudio -e USER=seto -e PASSWORD=abc rocker/rstudio

#ポート[localhost 8787]にアクセス
> googleの検索窓で、localhost:8787を入力して接続

> docker stop rocker_1
> docker rm rocker_1

jupyter/datascience-notebook

#イメージの取得(バージョン情報なし)
> docker pull jupyter/datascience-notebook

#コンテナの起動
> docker run --name jupyter_1 -d  -p 10000:8888 -e JUPYTER_ENABLE_LAB=yes -v C:\Users\ryuichi1117\desktop\docker\jupyter:/home/jovyan/work jupyter/datascience-notebook

#localhost:10000にアクセス
#docker desktopのコンソールにtokenが記載されているので、それでlogin

#中にも入れる
> docker exec -it jupyter_1 /bin/bash

> docker stop jupyter_1
> docker rm jupyter_1

token check
> docker logs jupyter_1


WordPress

2つのコンテナの環境変数は同期させないとうまく行かないので注意してくださいね。

#セッティング
#ネットワーク名:wp_seto_net
#MySQL コンテナ名:mysql_seto
#MYSQL_ROOT_PASSWORD=seto
#MYSQL_DATABASE=db_seto
#MYSQL_USER=seto
#MYSQL_PASSWORD=seto 
#MySQL イメージ名:mysql

#WordPress コンテナ名:wp_seto
#WordPress イメージ名:wordpress
#WORDPRESS_DB_HOST=mysql_seto
#WORDPRESS_DB_NAME=db_seto
#WORDPRESS_DB_USER=seto
#WORDPRESS_DB_PASSWORD=seto
#ネットワークの設定
> docker network create wp_seto_net

#mysqlのコンテナの構築(必ず先に行うこと)
> docker run --name mysql_seto -dit --net=wp_seto_net -e MYSQL_ROOT_PASSWORD=seto -e MYSQL_DATABASE=db_seto -e MYSQL_USER=seto -e MYSQL_PASSWORD=seto mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --default-authentication-plugin=mysql_native_password

#wordpressのコンテナの構築
> docker run --name wp_seto -dit --net=wp_seto_net -p 8085:80 -e WORDPRESS_DB_HOST=mysql_seto -e WORDPRESS_DB_NAME=db_seto -e WORDPRESS_DB_USER=seto -e WORDPRESS_DB_PASSWORD=seto wordpress

起動が確認できたら、localhost:8085に接続!
wordpressで遊べるようになる!

コンテナの改造について...

今後更新していきますね。

この記事が気に入ったらサポートをしてみませんか?