简体   繁体   中英

Where are the packages installed with `apt-get install` in Docker containers?

I'm trying to locate the libgsl.so library in a Docker container after installing it successfully .

When I run an interactive shell with docker run -it container/image bash and try to find it find / -iname "*libgsl*" I get nothing (the tool tries to find it under /usr/lib/). It seems that the same is true for another successfully installed libraries (eg libjpeg62).

So, generally, where are these libraries being installed ?

I'm running Docker with VBox in MacOS. Here is the Dockerfile file:

FROM phusion/baseimage

# Install dependencies
RUN apt-get update && apt-get install -y \
  libgsl0ldbl \
  curl \
  gsl-bin

# Installs preseq from sources into /opt/
ENV PRESEQ_RELEASE=2.0
ENV PRESEQ_URL=http://smithlabresearch.org/downloads/preseq_linux_v${PRESEQ_RELEASE}.tar.bz2
ENV DEST_DIR=/opt/

# Download preseq; untar & decompress; remove tr.bz2 file; compile & install preseq; remove unnecessary files
RUN curl -SLo ${DEST_DIR}/preseq_v${PRESEQ_RELEASE}.tar.bz2 ${PRESEQ_URL} && \
  tar -xf ${DEST_DIR}/preseq_v${PRESEQ_RELEASE}.tar.bz2 -C ${DEST_DIR} && \
  rm -f ${DEST_DIR}/preseq_v${PRESEQ_RELEASE}.tar.bz2

ENV PATH=${DEST_DIR}/preseq_v${PRESEQ_RELEASE}:$PATH
CMD ["preseq"]

UPDATE

I was running the wrong container (not using the right tag) where I didn't have the library installed. After changing the tag, I found the libraries without a problem. Packages are installed in the default locations (in this case /usr/lib/).

Since phusion/baseimage use Ubuntu

Ask the package management what files the package contains:

dpkg -L libgsl0ldbl

This shows the files simply copied to those locations. These files are marked as managed by the package management

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM