LoginSignup
0
1

More than 3 years have passed since last update.

Docker をつかって RAR 形式のファイルを展開(解凍)する

Posted at

 Windows 10 で ubuntu Docker imageunrar をつかって RAR 形式のファイルを展開する手順です。ホスト OS の Windows 10 には RAR 展開ソフトウェアをインストールせずに、Docker コンテナで展開処理します。

 RAR 形式に圧縮されたファイルを展開するためには WinRAR や 7-Zip のような RAR 圧縮ファイルを扱えるソフトウェアが当然必要になりますが、Docker を利用することによって、ホスト OS ではなくコンテナに展開プログラムをインストールし、用が済めばコンテナごと破棄する、という使い方ができます。普段から RAR 形式をよく利用するのであればソフトウェアをインストールしておけばよいですが、稀に使用する程度という人にとって、ホスト OS に専用ソフトウェアをインストールせずに済みます。

1. ubuntu イメージを取得する

 ファイルの展開に使用する Linux コンテナイメージを docker hub から取得します。ここでは現時点の ubuntu:latest である 20.04 Focal Fossa を使用します。

ubuntuイメージを取得する
> docker pull ubuntu

    Using default tag: latest
    latest: Pulling from library/ubuntu
    Digest: sha256:c95a8e48bf88e9849f3e0f723d9f49fa12c5a00cfc6e60d2bc99d87555295e4c
    Status: Image is up to date for ubuntu:latest
    docker.io/library/ubuntu:latest

2. ubuntu コンテナに unrar をインストールする

 初期イメージに unrar は含まれていないため、unrar をインストールしたコンテナを作成します。unrar のインストールには ubuntu のパッケージ管理ツール apt-get を利用します。

unrarをインストールする
> docker run -it ubuntu /bin/bash -c "apt-get update && apt-get -y install unrar && rm -rf /var/lib/apt/lists/*"

    ...
    Reading package lists... Done
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    The following NEW packages will be installed:
      unrar
    0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
    ...

3. コンテナから新しいイメージを作成する

 ファイルを展開するときに使用する新しいイメージを作成します。イメージの名前は任意ですが、下記の例では my/unrar としています。まず、docker ps でコンテナ ID を確認して(下記の例では 9b720fae191a )、docker commit でイメージを作成し、イメージを作成した後は docker rm でコンテナを削除します。

新しいイメージを作成する
> docker ps -l

    CONTAINER ID        IMAGE               STATUS
    9b720fae191a        ubuntu              Exited (0) 3 minutes ago

> docker commit 9b720fae191a my/unrar
> docker rm 9b720fae191a

4. RAR 形式の圧縮ファイルを展開する

 ホスト OS のファイルシステムにある RAR 形式の圧縮ファイルを展開します。下記の例では「New Text Document.rar」から同じフォルダに「New Text Document.txt」を展開しています。 docker run は実行する度にコンテナを作成しますが --rm オプションを指定しておくと処理終了時にコンテナが自動で削除されるようになります。

RARアーカイブを展開する
> docker run -v ${PWD}:/tmp -w /tmp -i --rm my/unrar unrar e -r './New Text Document.rar'

UNRAR 5.61 beta 1 freeware      Copyright (c) 1993-2018 Alexander Roshal

Extracting from ./New Text Document.rar

Extracting  New Text Document.txt                                     OK 
All OK

 使用しなくなったときは、Docker コンテナとイメージを削除します。

 以上の手順のうち、新しいイメージを作成するまでの手順้は Dockerfile と docker build コマンドで代用することもできます。Dockerfile を下記のような内容で用意しておいて docker build -t my/unrar . を実行すると、my/unrar イメージからすぐに unrar を実行できる(上記 4 の手順)状態になります。この流れは unrar に限らず、Windows で Linux のプログラムを実行したい、という場面に応用できます。

Dockerfile
FROM ubuntu:latest

# set a directory for the app
WORKDIR /tmp

# install unrar
RUN apt-get update && apt-get -y install unrar && rm -rf /var/lib/apt/lists/*
0
1
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
0
1