Docker – Removing Man Pages on Ubuntu Installation

dockermanpage

I am trying to reduce the footprint of my Ubuntu docker image. Given that there is very little use for the man files and I deleted them, committed the image and then tried to use it. AFAICT it did no harm. However, I thought it worth asking here. Am I storing up any ugly problems for the future by doing this?

Best Answer

Short answer: no, this should not cause any major issue.


TL;DR

I think that you will not cause any major damage except these two cases:

  1. If do you need a manual for any command, you won't find it.
  2. The /usr/share/man folder will grow when you do a package install/update.

  1. Disable the apt cache:

    When you install a package with apt-get or aptitude on a Debian-based system, the downloaded package is, by default, kept in the APT cache located at /var/cache/apt/archives. This is really not necessary as you typically do not re-install the same package ever again. Over time, the content in /var/cache/apt/archives will grow.

    • Create a file in /etc/apt/apt.conf.d/ called 02nocache with these contents:

      Dir::Cache "";
      Dir::Cache::archives "";
      
    • Clear the apt cache:

      sudo rm -rf /var/cache/apt/archives 
      
  2. Disable man pages, locales and docs:

    You can disable a lot of rubbish doing this:

    • Create a file called 01_nodoc on /etc/dpkg/dpkg.cfg.d with these contents:

      # /etc/dpkg/dpkg.cfg.d/01_nodoc
      
      # Delete locales
      path-exclude=/usr/share/locale/*
      
      # Delete man pages
      path-exclude=/usr/share/man/*
      
      # Delete docs
      path-exclude=/usr/share/doc/*
      path-include=/usr/share/doc/*/copyright
      
    • Delete the current contents:

      sudo rm -rf /usr/share/doc/
      sudo rm -rf /usr/share/man/
      sudo rm -rf /usr/share/locale/