Picture of the author

UbuntuにてDocker環境構築してみた

ganeysa

はじめに

シンプルに自分がやった手順を残しただけなので環境によってはうまくいかないかもしれません!

作業環境

ubuntu 22.04 (LTS)

具体的な手順

Dockerをインストールする準備をする

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

実行したコマンド(画像+コード)

Screenshot_from_2024-10-15_13-17-14.png

実行結果

Dockerをインストールするコマンド

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

実行したコマンド

image.png

実行結果

Dockerエンジンがきちんと入ったか確かめる

sudo docker run hello-world

上記のコマンドを入力した

すると。。。。

image.png

こんな感じの実行結果になった!

多分うまくインストールできてそう!i

Dockerを用いてpythonの実行環境を構築する

# ベースイメージとして公式のUbuntuイメージを使用し、その上にPythonをインストールします
FROM ubuntu:20.04

# 作業ディレクトリを設定します
WORKDIR /app

# 必要なシステムパッケージをインストールします
RUN apt-get update && apt-get install -y --no-install-recommends \
    python3 \
    python3-pip \
    build-essential \
    libsm6 \
    libxext6 \
    libxrender-dev \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

# python コマンドのエイリアスを作成します
RUN ln -s /usr/bin/python3 /usr/bin/python

# 必要なPythonライブラリをインストールします
RUN pip3 install --no-cache-dir numpy opencv-python-headless scikit-learn pandas matplotlib

# ホストのappディレクトリ内のファイルをコンテナ内にコピーします
COPY ./app /app

# コンテナ起動時にインタラクティブシェルを実行します
CMD ["/bin/bash"]

上記のようなdockerファイルを作成しDockerにてpythonの実行環境を構築する!

ディレクトリ構成

app/hello.py
Dockerfile
README

hello.pyの中身

print("hello")

Docker上でHello Worldしてみる!

docker built -it my-python-env .

上記コマンドを使ってdockerファイルを元に環境をビルドする

docker run -it my-python-env 

先程作成したDockerコンテナを動かす

python hello.py

pythonファイルを実行するコマンドをじっこうする

image.png

実行結果!

コンテナ上でHello Worldと出力された

参考