LoginSignup
0
0

Docker覚書

Last updated at Posted at 2020-08-01

#はじめに
これはDocker初心者でDockerに遊ばれている僕が、「Dockerでrstudioを動かすため」(ここ重要)の「Dockerを動かす」部分のメモ書きである。コピペの部分も多いが、メモ書きなので目をつぶっていただけると有難い。
他の人が役に立つかどうかは知らないが,まあ役に立つならそれで良いかなあと。取り敢えず自己満足で書いているので、そこんとこ宜しく。

#参考にしたサイト

@fist0 氏のdocker images を全削除する

@kooohei 氏のDockerコンテナの作成、起動〜停止まで

@butada(初心者向け)Dockerの使い方

####Nov/12/20追記分

Imamachi-n氏のDockerコンテナ上でNGSのソフトウェアを実行してみる(Windows10・MacOSXローカル環境編)

@YumaInaura氏のDocker — docker コンテナの中で vim が使えない場合

infoScoop社のDockerFileでDockerイメージを作成してみる

かべぎわ氏の任意の名前のDockerfileでdocker buildする

sagantaf氏の[Docker実践〜稼働中のDockerコンテナをバックアップとしてイメージ化して保存しておく]
(https://sagantaf.hatenablog.com/entry/2018/09/04/190801)
##用語

@butada (初心者向け)Dockerの使い方によると

「イメージ:コンテナが動作するためにベースとなるファイル群。コンテナによってイメージが変更されることはなく不変のもの。Docker Hubから取得可能。CentOSイメージが汎用的なので初心者には使いやすいと思う。
コンテナ:イメージから作成されたインスタンスのようなもの。コンテナが動作することで生成されたファイルは、イメージではなくコンテナに紐づいて管理される。ざっくり言うと、コンテナ=イメージ+差分ファイル。厳密に言えばコンテナには起動中のプロセスも含まれる。」
らしい。
ふむふむ
##Dockerコマンドの基本
取得可能なイメージはDockerHubで確認する。

docker pull images #イメージをローカルにダウンロードする

ダウンロード出来たら、以下のコマンドで確認。

docker images
#以下のように出てくる
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

##基本動作

###イメージを確認

docker images

###コンテナの一覧を確認

#デフォルトは稼働中のコンテナを表示
docker ps
#全てのコンテナを表示
docker ps -a

##作成
###イメージからコンテナの作成

docker run -it images

##自作のDockerfileの起動(Nov/12/20)

docker run -it -p Dockerfile名 /bin/bash

###ログイン状態を抜ける(dettachする)
ログインを抜けるためには{Ctr+P},{Ctr+Q}を順番に押す(これを「dettach(デタッチ)」と呼ぶ)。
dettachしたコンテナを確認する方法は

docker ps

である。

###再度ログインする(attachする)
そして、dettachしたコンテナに再度ログインする状態ことを「attach」と呼び、以下のコマンドを叩く。
docker attach <CONTAINER IDまたはNAME>を入力する

docker attach container-ID

あるいは

docker attach container-NAME

となる。

###コンテナの中でdockerを終了する

exit

###コンテナを起動する

docker start container-ID

または

docker start container-Name

###コンテナを終了する
ターミナルの中でコンテナを終了する。

docker stop container-ID

または

docker stop container-name

##docker images を削除する
###コンテナ削除

docker rm

###イメージ削除

docker rmi -f

###全削除
コンテナが動いているとイメージを削除できないので, 本当に全削除したいときはコンテナから全削除する。

####コンテナを削除する

docker ps -aq | xargs docker rm

####イメージを削除する

docker images -aq | xargs docker rmi

なんかあれば、また追記する。

##Dockerfileの作り方(Nov/12/20)

これ(http://imamachi-n.hatenablog.com/entry/2018/03/18/142327) を参考にDockerfileを作った(というかほぼまんまコピペした・・・)。

# Base image
FROM debian:9-slim

# Install Miniconda3 & Bioconda
RUN apt-get -qq update && apt-get -qq -y install curl bzip2 \
  && apt-get -qq -y install vim \ #デフォルトではvimが入っていない。
  && curl -sSL https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -o /tmp/miniconda.sh \
  && bash /tmp/miniconda.sh -bfp /usr/local \
  && rm -rf /tmp/miniconda.sh \
  && conda install -y python=3 \
  && conda update conda \
  && conda config --add channels r \
  && conda config --add channels defaults \
  && conda config --add channels conda-forge \
  && conda config --add channels bioconda \
  && apt-get -qq -y remove curl bzip2 \
  && apt-get -qq -y autoremove \
  && apt-get autoclean \
  && rm -rf /var/lib/apt/lists/* /var/log/dpkg.log \
  && conda clean --all --yes

ENV PATH /opt/conda/bin:$PATH

これを拡張子をつけずにDockerfileで保存するか、自分の保存したい名前で保存する。

そして以下のようにしてbuildする。

#Dockerfileで保存した場合
docker build -t myimage:1.0 .

#自分の保存したい名前で保存した場合
docker build -t myimage:1.0 -f docker_test.txt .

自分がよく使いそうなオプションだけ書く。

Options 名前
-t, --tag list 名前とタグをつけることが出来る 例 name:tag

|
-f,--file string |Dockerファイルの名前を指定できる (Default is 'PATH/Dockerfile')


以下のDockerfileをdemo2と名付けてdocker buildした。

demo2}
# Build from base image
FROM ubuntu:20.04
# Update base images with latest patches
RUN apt-get update && apt-get upgrade -y
# Install dependencies and pdftotext
RUN apt-get -y install poppler-utils \
  && apt-get -y install python3-pip  # python-pip

# Install tool
RUN pip3 install wordcloud
docker build -t name:tag dockerfile_dir/dockerfile docker file_dir

docker build -t demo2:1.0 -f demo2 .

詳しくは

docker build --help

で確認すること。

##dockerimageの保存
 他のターミナルを開き、ターミナル状況を確認する。そして、

docker commit コンテナのIDもしくはNAME  イメージ名

というようにして保存する。

##Dockerimageのファイル化

バックアップしたイメージはsaveコマンドでファイル化して、Docker環境の無いサーバやNASに保存しておくことができる。現在いるディレクトリに作成される。

docker save イメージ名 -o ファイル名

##Dockerimageのファイルから復旧

docker load test_file.tar
docker images
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0