LoginSignup
2
4

More than 5 years have passed since last update.

Docker起動までの最低限

Last updated at Posted at 2017-05-03

目的

環境

  • Ubuntu 16.04

作業

1. Dockerファイル作成

  • Dockerイメージのコアには容量削減のためのAlpine Linuxを使うことが多けど、パッケージ依存の解決が大変なので、とりあえずUbuntuを使う
Dockerfile
FROM ubuntu:16.04

ARG USER_NAME="lynlea"
ARG USER_HOME="/home/lynlea"
ARG ROOT_HOME="/root"

#-------------------------------------
# 初期設定 
#-------------------------------------
# 時刻設定
RUN ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

# aptリポジトリ変更
RUN sed -i -e "s%http://archive.ubuntu.com/ubuntu/%http://ftp.iij.ad.jp/pub/linux/ubuntu/archive/%g" /etc/apt/sources.list \
&& apt-get update && apt-get upgrade -y

# 文字コード設定
RUN apt-get -y install language-pack-ja-base language-pack-ja \
&& locale-gen ja_JP.UTF-8
ENV LANG ja_JP.UTF-8 \
&& LANGUAGE ja_JP:en \
&& LC_ALL ja_JP.UTF-8

# ユーザ作成
RUN echo "CREATE_HOME yes" >> /etc/login.defs \
&& useradd -u 1000 ${USER_NAME}

#-------------------------------------
# パッケージインストール
#-------------------------------------
# do something

#-------------------------------------
# 後処理 
#-------------------------------------
RUN apt-get autoremove \
&& apt-get clean

2. Dockerイメージ作成

docker-build.sh
#!/bin/bash
set -e
IMAGE_NAME="lynlea/test-image"

docker build -t "${IMAGE_NAME}" .
$ ./docker-build.sh

3. Dockerコンテナ起動

docker-run.sh
#!/bin/bash
set -e

IMAGE_NAME="lynlea/test-image"
CONTAINER_NAME="test-container"
HOST_NAME="${CONTAINER_NAME}"

#PORT_HOST="8080"
#PORT_GUEST="80"

#DIR_HOST="/home/lynlea/docker_share"
#DIR_GUEST="/home/user/docker_share"

docker run -d -it \
    --name "${CONTAINER_NAME}" \
    --hostname "${HOST_NAME}" \
    -v /etc/localtime:/etc/localtime:ro \
    --restart=always \
    "${IMAGE_NAME}"

#-p "${PORT_HOSt}:${PORT_GUEST}"  \
#-v "${DIR_HOST}:${DIR_GUEST}" \
  • -d … デーモン化(起動しっぱなし)
  • -v /etc/localtime:/etc/localtime:ro … ホストと時刻を合わせる
  • -p … ポート設定
  • -v … ファイルマウント
  • --restart=always … ホスト再起動したときに、このdockerコンテナを自動的に立ち上げる
$ ./docker-run.sh

4. 起動中のコンテナに入る

$ docker exec -it コンテナ名 bash
  • 出るときは exit。-dでデーモン化しているからexitしてもコンテナ起動したまま
2
4
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
2
4