ローカルの環境を汚さずに、Ubuntu向けの作業をしたい時ってありませんか?
個人的に本番環境のUbuntuを想定して作業したい時、Ubuntuイメージのコンテナが1つあると便利だったのでdocker-composeを使用した構成を共有します。
ディレクトリ構成
前提として、以下のディレクトリ構成で作成します。
- docker_ubuntu ...親ディレクトリ
- docker-compose.yml
- front
- Dockerfile
- scripts ...コンテナと共有したいファイル等を配置するディレクトリ
- test.sh
使用するファイル
docker-compose.yml
とDockerfile
の中身に関して、紹介します。
docker-compose.yml
ubuntu_demo
というコンテナ名で作成します。
ホスト側の/{path}/docker_ubuntu/scripts
を、コンテナの/var/scripts
とマウントします。
version: "3"
services:
release_demo:
container_name: ubuntu_demo
build:
context: ./front/
volumes:
- ./scripts:/var/scripts
tty: true
Dockerfile
ここではubuntu:18.04
イメージを使用しましたが、好きなversionを使用してください。
また、ツールは必要に応じてインストールしてください。
FROM ubuntu:18.04
## 必要なツールをインストール
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -my \
git \
libgirepository1.0-dev \
apt-utils \
libjpeg-dev \
locales \
libssl-dev \
libffi-dev \
pkg-config \
libcairo2-dev \
&& rm -rf /var/lib/apt/lists/* \
&& mkdir -p /var/run/pip3 /dist-packages
## 言語設定を行う
RUN locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
## 実行するためのディレクトリを作成
RUN mkdir -p /var/scripts
コンテナ実行の流れ
コンテナの作成・起動
docker-composeファイルが置かれているdocker_ubuntu
に移動して、docker-compose up -d
を行います。
$ cd /{path}/docker_ubuntu
$ docker-compose up -d
コンテナ内に入る
docker-compose.yml
で定義したcontainer_name
を指定して、実行中のコンテナ内に入ります。
$ docker exec -it ubuntu_demo /bin/bash
ホストとマウントしているファイルを、コンテナ内で確認
コンテナ内に入って/var/scripts
を確認すると、ホスト側の/{path}/docker_ubuntu/scripts
配下に置いていたtest.sh
が共有されていることが分かります。
root@454e99be6a7f:/var/scripts# ll
total 8
drwxr-xr-x 3 root root 96 Mar 30 15:16 ./
drwxr-xr-x 1 root root 4096 Mar 30 14:57 ../
-rw-r--r-- 1 root root 23 Mar 30 15:17 test.sh
まとめ
dockerを使って簡単にubuntu環境を作成する方法を紹介しました。
手順に沿えばすぐに環境を作成できるので、是非使ってみてください。
コメント