加载 Docker 时出错:共享库:libsystemd-journal.so.0:无法打开共享对象文件:没有这样的文件或目录
error while loadingDocker: shared libraries: libsystemd-journal.so.0: cannot open shared object file: No such file or directory
我正在使用 Docker 版本:
Client:
Version: 1.9.1
API version: 1.21
Go version: go1.4.2
Git commit: a34a1d5
Built: Fri Nov 20 13:25:01 UTC 2015
OS/Arch: linux/amd64
Server:
Version: 1.9.1
API version: 1.21
Go version: go1.4.2
Git commit: a34a1d5
Built: Fri Nov 20 13:25:01 UTC 2015
OS/Arch: linux/amd64
我在 Centos 7
我的 Docker 环境中有一个 Jenkins 容器 运行。
当我访问 Jenkins 容器并尝试执行 Docker-命令时,我收到此错误:
libsystemd-journal.so.0: cannot open shared object file: No such file or directory
我试过了:[root@localhost lib64]# sudo ln -s /usr/lib64/libsystemd.so.0 libsystemd.so.0
ln: 未能创建符号 link 'libsystemd.so.0': 文件存在
我在解决这个问题后看到了这个问题:
这是同一个问题:https://botbot.me/freenode/docker/2015-12-01/?page=4
在对 , the OP Jenson 进行多条评论后确认它可以用于:
I will have to make a dockerfile because the run command is too much.
But it works at the moment:
docker run -d --name jenkins --volumes-from jenkins-dv --privileged=true \
-t -i \
-v /var/run/docker.sock:/var/run/docker.sock
-v $(which docker):/bin/docker \
-v /lib64/libsystemd-journal.so.0:/usr/lib/libsystemd-journal.so.0 \
-v /lib64/libsystemd-id128.so.0:/usr/lib/libsystemd-id128.so.0 \
-v /lib64/libdevmapper.so.1.02:/usr/lib/libdevmapper.so.1.02 \
-v /lib64/libgcrypt.so.11:/usr/lib/libgcrypt.so.11 \
-v /lib64/libdw.so.1:/usr/lib/libdw.so.1 \
-p 8080:8080 jenkins
我提到 运行ning docker 来自容器 ("cic": "container-in-container") 意味着安装 docker
可执行文件和 /var/run/docker.sock
.
显然,该特定图像需要从容器中 运行 多一点。
对于我的开发环境,我 运行宁 docker-compose 并连接到 ubuntu 图像容器 (14.04 LTS)(我将 /var/run/docker.sock
安装为嗯)。
自从昨天晚上更新了我的主机 ubuntu 系统后,当我想在开发容器中 运行 一个 docker 命令时遇到了同样的错误:
[dev@docker_dev]:~$ docker ps
docker: error while loading shared libraries: libsystemd-journal.so.0: cannot open shared object file: No such file or directory
所以我进行了更新并安装了 libsystemd-journal0
:
[dev@docker_dev]:~$ sudo apt-get update
[dev@docker_dev]:~$ sudo apt-get install libsystemd-journal0
现在我的开发容器可以正常使用 docker 命令
从错误来看,您的可执行文件所需的共享库似乎丢失了。解决此问题的一种方法是:
- 在 Dockerfile 中使用 "COPY" 命令将共享的 libraries/dependencies 复制到容器中。示例:复制 {local_path} {docker_path}
- 然后,在标准目录集之前设置首先搜索共享库的环境变量。例如,对于基于 Linux 的 OS,使用 LD_LIBRARY_PATH。可以通过 Docker's Environment replacement (ENV) 设置环境变量。示例:ENV LD_LIBRARY_PATH={docker_path}:$LD_LIBRARY_PATH
其他是静态 link 你的二进制文件与依赖项(语言相关)。
我正在使用 Docker 版本:
Client:
Version: 1.9.1
API version: 1.21
Go version: go1.4.2
Git commit: a34a1d5
Built: Fri Nov 20 13:25:01 UTC 2015
OS/Arch: linux/amd64
Server:
Version: 1.9.1
API version: 1.21
Go version: go1.4.2
Git commit: a34a1d5
Built: Fri Nov 20 13:25:01 UTC 2015
OS/Arch: linux/amd64
我在 Centos 7 我的 Docker 环境中有一个 Jenkins 容器 运行。 当我访问 Jenkins 容器并尝试执行 Docker-命令时,我收到此错误:
libsystemd-journal.so.0: cannot open shared object file: No such file or directory
我试过了:[root@localhost lib64]# sudo ln -s /usr/lib64/libsystemd.so.0 libsystemd.so.0 ln: 未能创建符号 link 'libsystemd.so.0': 文件存在
我在解决这个问题后看到了这个问题:
这是同一个问题:https://botbot.me/freenode/docker/2015-12-01/?page=4
在对
I will have to make a dockerfile because the run command is too much.
But it works at the moment:
docker run -d --name jenkins --volumes-from jenkins-dv --privileged=true \
-t -i \
-v /var/run/docker.sock:/var/run/docker.sock
-v $(which docker):/bin/docker \
-v /lib64/libsystemd-journal.so.0:/usr/lib/libsystemd-journal.so.0 \
-v /lib64/libsystemd-id128.so.0:/usr/lib/libsystemd-id128.so.0 \
-v /lib64/libdevmapper.so.1.02:/usr/lib/libdevmapper.so.1.02 \
-v /lib64/libgcrypt.so.11:/usr/lib/libgcrypt.so.11 \
-v /lib64/libdw.so.1:/usr/lib/libdw.so.1 \
-p 8080:8080 jenkins
我提到 运行ning docker 来自容器 ("cic": "container-in-container") 意味着安装 docker
可执行文件和 /var/run/docker.sock
.
显然,该特定图像需要从容器中 运行 多一点。
对于我的开发环境,我 运行宁 docker-compose 并连接到 ubuntu 图像容器 (14.04 LTS)(我将 /var/run/docker.sock
安装为嗯)。
自从昨天晚上更新了我的主机 ubuntu 系统后,当我想在开发容器中 运行 一个 docker 命令时遇到了同样的错误:
[dev@docker_dev]:~$ docker ps
docker: error while loading shared libraries: libsystemd-journal.so.0: cannot open shared object file: No such file or directory
所以我进行了更新并安装了 libsystemd-journal0
:
[dev@docker_dev]:~$ sudo apt-get update
[dev@docker_dev]:~$ sudo apt-get install libsystemd-journal0
现在我的开发容器可以正常使用 docker 命令
从错误来看,您的可执行文件所需的共享库似乎丢失了。解决此问题的一种方法是:
- 在 Dockerfile 中使用 "COPY" 命令将共享的 libraries/dependencies 复制到容器中。示例:复制 {local_path} {docker_path}
- 然后,在标准目录集之前设置首先搜索共享库的环境变量。例如,对于基于 Linux 的 OS,使用 LD_LIBRARY_PATH。可以通过 Docker's Environment replacement (ENV) 设置环境变量。示例:ENV LD_LIBRARY_PATH={docker_path}:$LD_LIBRARY_PATH
其他是静态 link 你的二进制文件与依赖项(语言相关)。