3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Dockerを導入したい

Last updated at Posted at 2020-04-08

#はじめに
Macでpython3を使おうとしたら、見事に環境が破壊されたため、Dockerを導入してコンテナ上でPythonを実行することにする。

筆者の能力

  • python3を入れようとして、元環境を破壊してしまうくらいの雑魚さ
  • Dockerはかなり前に一度触ったことがあるため、インストールはされている

PC : MacbookPro Early2015
OS : macOS Catelina

自分の頭の中整理くらいに書いていきます。
参考ページ
https://qiita.com/k5n/items/2212b87feac5ebc33ecb
[https://note.com/motchalini/n/nc0486b630b67]
(https://note.com/motchalini/n/nc0486b630b67)
https://qiita.com/chroju/items/ce9cae248cc016745c66

#作業

##イメージの取得
今回はpython3を利用するための環境が欲しいため、python3のイメージをローカルに落としてくる。python3のためのイメージはpython:3らしい

$ docker pull python:3

これでpython3のイメージをダウンロードできた。

Dockerfileの作成&ビルド

最初なので、vimとpipが使えたらいいかなと思い、それだけデフォルトでインストールしておく。
適当なフォルダにDockerfileという名前のファイルを作っておく

Dockerfile
FROM python:3
MAINTAINER koji-satoyama

# パッケージのインストールとアップデート
RUN apt-get update && apt-get -y upgrade && apt-get clean
RUN apt-get -y install vim

RUN pip install --upgrade pip 

$ docker build -t <イメージの名前> .

すげー長いシステムログと共に、ビルドが成功した。
おそらくvimやらapt-getやらを取っていた模様。

イメージのリストを確認すると、自分の名付けたイメージが作成されていた。
python:3というイメージから派生させて、新しくイメージを作成したというニュアンスだろうか。

$ docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
<イメージの名前>         latest              xxxxxxxxxxxx        6 minutes ago       1GB

コンテナの起動

あとは作成したイメージを元にコンテナを起動するのだが、いろいろオプションがある模様。

実行したコマンドは以下。

$ docker run -it --name <コンテナの名前> -v [ホストPCの絶対パス]:[コンテナ上のパス] -w [コンテナ上のパス] <イメージの名前> /bin/bash

コマンドを説明していく。
詳しくは公式ドキュメントを参考にされたい。
http://docs.docker.jp/engine/reference/commandline/run.html

オプション 意味
-it インタラクティブかつ擬似ターミナル割当
--name 作成するコンテナ名の指定。
-v コンテナでホストPCのフォルダをマウントする。次で指定したホストPCのフォルダをコンテナ上に作る
-w 初期ディレクトリの指定。コンテナに入ったときの現在ディレクトリ
python_test 利用するイメージの名前
/bin/bash コンテナを起動してはじめに実行するコマンド。bashを起動している

このコマンドで、コンテナの中に入って作業ができる

作業が終わったら

コンテナ内の作業が終わったら、

exit

でコンテナから抜け出す。(他にも方法はあるが、省略)

次からコンテナに入る時は次を実行

# コンテナの再起動
$ docker restart <コンテナの名前>
# コンテナに入る
$ docker attach <コンテナの名前>

終わりに

いろいろ調べながらだと、2時間くらいかかってしまった。
慣れないと覚えられないことも多いので、Dockerは毎日触りたい。

3
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
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?