38
39

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 5 years have passed since last update.

DockerのUbuntuイメージでapt-getするには

Last updated at Posted at 2018-03-10

Linux Mint 18.3にDockerをインストールし、Ubuntu 16.04のイメージを元に自分の環境を作成しようと考えた。
この記事はそのときのメモである。

Docker環境の準備

インストール

$ sudo apt install docker.io

マイアカウントでdockerコマンドを実行可能に設定

$ sudo usermod -G docker -a マイアカウント

ここで一旦ログアウトして再度ログイン。

Ubuntuコンテナーを試す

先ずはUbuntuイメージを取得して実行

$ docker run -it ubuntu bash
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
Digest: sha256:e348fbbea0e0a0e73ab0370de151e7800684445c509d46195aef73e090a49bd6
Status: Downloaded newer image for ubuntu:latest
root@69b685dbca2a:/# 

そしてapt-getしてみる

root@69b685dbca2a:/# apt-get install vim
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package vim

vimパッケージの在り処が分からないと言っている。

リポジトリ情報の更新が必要(これ大事!)

root@69b685dbca2a:/# apt-get update
Get:1 http://security.ubuntu.com/ubuntu xenial-security InRelease [102 kB]
  :
  :
Get:21 http://archive.ubuntu.com/ubuntu xenial-backports/universe amd64 Packages [7705 B]                                          
Fetched 25.0 MB in 33s (753 kB/s)                                                                                                  
Reading package lists... Done

再度vimをインストール

root@69b685dbca2a:/# apt-get install vim
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  file libexpat1 libgpm2 libmagic1 libmpdec2 libpython3.5 libpython3.5-minimal libpython3.5-stdlib libsqlite3-0 libssl1.0.0
  mime-support vim-common vim-runtime
Suggested packages:
  gpm ctags vim-doc vim-scripts vim-gnome-py2 | vim-gtk-py2 | vim-gtk3-py2 | vim-athena-py2 | vim-nox-py2
The following NEW packages will be installed:
  file libexpat1 libgpm2 libmagic1 libmpdec2 libpython3.5 libpython3.5-minimal libpython3.5-stdlib libsqlite3-0 libssl1.0.0
  mime-support vim vim-common vim-runtime
0 upgraded, 14 newly installed, 0 to remove and 0 not upgraded.
Need to get 12.2 MB of archives.
After this operation, 58.3 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
  :
  :

終了してもこれまでやったことは忘れない

root@69b685dbca2a:/# exit
$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
69b685dbca2a        ubuntu              "bash"              32 minutes ago      Exited (0) 3 seconds ago                       pedantic_heyrovsky

自分のUbuntuコンテナーを作成

簡単なDockerfileを作成

$ mkdir -p ~/docker/ubuntu
$ cd ~/docker/ubuntu
$ vim Dockerfile

以下の内容のDockerfileを作成。

FROM ubuntu
RUN apt-get update && apt-get -y upgrade

自分のubuntuイメージを作成

$ docker build -t 'my/ubuntu' .
Sending build context to Docker daemon 2.048 kB
Step 1/2 : FROM ubuntu
 ---> f975c5035748
Step 2/2 : RUN apt-get update && apt-get -y upgrade
 ---> Running in 8c60a01fadc1
Get:1 http://security.ubuntu.com/ubuntu xenial-security InRelease [102 kB]
  :
  :
Get:21 http://archive.ubuntu.com/ubuntu xenial-backports/universe amd64 Packages [7705 B]
Fetched 25.0 MB in 19s (1256 kB/s)
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
Calculating upgrade...
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
 ---> af427ee95dbf
Removing intermediate container 8c60a01fadc1
Successfully built af427ee95dbf

正常にmy/ubuntuができているかを確認。

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
my/ubuntu           latest              af427ee95dbf        24 minutes ago      152 MB
ubuntu              latest              f975c5035748        3 days ago          112 MB

vimをインストールして凍結

参考:Dockerで、既存のイメージを少しだけ変えて再コミットする

先ずはオンデマンドでインストール。

$ docker run -it my/ubuntu bash
root@cc59edb12ad6:/# apt-get -y install vim
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  file libexpat1 libgpm2 libmagic1 libmpdec2 libpython3.5 libpython3.5-minimal libpython3.5-stdlib libsqlite3-0 libssl1.0.0
  mime-support vim-common vim-runtime
  :
  :

継続して作業したいと思うことが良くあるので、上記はそのままに、別の端末を開いて、コンテナーをコミットして凍結。

$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
cc59edb12ad6        my/ubuntu           "bash"              4 minutes ago       Up 4 minutes                            fervent_lamport
$ docker commit cc59edb12ad6 my/ubuntu
sha256:17e86bb43336827af0d225efcca8a69411bd3135826249826035f810fd9fae00

念のため、動作を確認。

root@cc59edb12ad6:/# exit
$ docker run -it my/ubuntu bash
root@388b3bff5bd8:/# vim

vimが実行されれば正常。

一度に多くのパッケージをインストールしたい場合や再現性を確保したい場合はDockerfileに記述すべきなので、その点を考慮に入れながら作業して欲しい。

このUbuntuのバージョンは?

最後にこのUbuntuのバージョンを確認しておこう。

root@388b3bff5bd8:/# cat /etc/os-release 
NAME="Ubuntu"
VERSION="16.04.4 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.4 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial
38
39
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
38
39

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?