Ubuntuを前提にしてるので,すべてsudoつき。
$ sudo docker build -t (イメージ名) (Dockerfileのpath)
多くの場合,buildしたいDockerfileと同じディレクトリにいるから,その時のPATHは.
でOK
$ sudo docker pull kazutan/stan-d:latest
コロンの後はDockerHubリポジトリ内のタグ。
$ sudo docker images
イメージの一覧が表示される。
$ sudo docker rmi s88
イメージ一覧で出てくるリストから,該当するイメージのIMAGE ID
の最初の3文字で指定してる。被りがなければこれでOK。もしエラーがでてうまく行かず,強制的に取り除きたいときは以下のコマンドを。
$ sudo docker rmi --force s88
$ sudo docker ps
現在稼働しているコンテナの一覧が表示される。稼働してないコンテナも含めて一覧表示させるには以下のコマンドを。
$ sudo docker ps -a
$ sudo docker run -p 8787:8787 -e PASSWORD=(初期Pass) -v (リンクさせたいディレクトリパス):/home/rstudio -d --name (コンテナ名) kazutan/stan-d:latest
-p 8787:8787
はポートフォワーディング。-e PASSWORD=(初期Pass)
はRStudioServerへログインする際のパスワード。なおアカウント名はrstudio。-v
はローカルとリモートでディレクトリを通す。-d
はバックグラウンドで動かすオプション。これをしないといちいち^C
で落とさないといけなくなる。--name
は作成するコンテナ名。基本設定したほうが楽。なおすでに同名のコンテナがあると怒られる。- 最後に使用するイメージ名。もし指定したイメージがない場合,DockerHubに探しに行ってイメージを取得し,そしてコンテナを作成しようとする。
サンプルとしては,こんな感じ。
$ sudo docker run -p -e PASSWORD=kosaki 8787:8787 -v ~:/home/rstudio -d --name kosaki kazutan/stan-d
$ sudo docker stop (コンテナ名)
コンテナが停止する(削除はされない)。
$ sudo docker start (コンテナ名)
停止していたコンテナを起動する。存在しないコンテナは起動できない。
$ sudo docker rm (コンテナ名)
該当のコンテナを削除。なおそのコンテナが起動している場合は怒られるので,停止してからにすること。もし強制的に削除したい場合は,たぶん以下でOK。
$ sudo docker rm --force (コンテナ名)
$ sudo docker exec -it (コンテナ名) /bin/bash
これで該当のコンテナへ入れる。出るときはexit
でOK
イメージは以下の通り:
- rockerベースのコンテナ作成
- 作ったコンテナに繋いでbash(上記内容参照)
- コンテナ内のrstudio-serverを削除(sudo apt remove rstudio-server)
- gdebi-coreをaptでインストール
- wgetでdebイメージをダウンロード(preview版のページからリンク先をコピーすれば楽。なおrockerはDebian9)
- sudo gdebi rstudio-server-stretch-*****.debを実行