侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

树莓派上安装docker并运行jar

2023-11-21 星期二 / 0 评论 / 0 点赞 / 65 阅读 / 5583 字

系统信息Distributor ID: RaspbianDescription: Raspbian GNU/Linux 8.0 (jessie)Release: 8.0Codena

系统信息

Distributor ID: RaspbianDescription:    Raspbian GNU/Linux 8.0 (jessie)Release:        8.0Codename:    jessie

安装步骤

1、配置源地址

vi /etc/apt/sources.list我配置的源地址如下:

deb http://mirrors.zju.edu.cn/raspbian/raspbian/ jessie main contrib non-free rpideb-src http://mirrors.zju.edu.cn/raspbian/raspbian/ jessie main contrib non-free rpi

2、更新

sudo apt-get update

3、安装一些工具包

sudo apt-get install /     apt-transport-https /      ca-certificates  /     curl /     software-properties-common

4、安装docker

apt安装各种失败,直接下载package安装了。

wget https://apt.dockerproject.org/repo/pool/main/d/docker-engine/docker-engine_17.03.0~ce-0~raspbian-jessie_armhf.debsudo dpkg -i docker-engine_17.03.0~ce-0~raspbian-jessie_armhf.deb

5、安装完成

root@raspberrypi:/u02/docker# docker versionClient: Version:      17.03.0-ce API version:  1.26 Go version:   go1.7.5 Git commit:   60ccb22 Built:        Thu Feb 23 11:32:23 2017 OS/Arch:      linux/armServer: Version:      17.03.0-ce API version:  1.26 (minimum version 1.12) Go version:   go1.7.5 Git commit:   60ccb22 Built:        Thu Feb 23 11:32:23 2017 OS/Arch:      linux/arm Experimental: false

使用过程中遇到的问题

###1、运行sudo docker run hello-world

报错:docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.See 'docker run --help'.

解决办法:检查docker有没有启动

 service docker start发现报错:Job for docker.socket failed. See 'systemctl status docker.socket' and 'journalctl -xn' for details.A dependency job for docker.service failed. See 'journalctl -xn' for details.root@raspberrypi: journalctl -xnMar 18 23:43:10 raspberrypi systemd[1]: Unit docker.socket entered failed state.Mar 18 23:43:10 raspberrypi sudo[28389]: pam_unix(sudo:session): session closed for user rootMar 18 23:43:23 raspberrypi oray_serve[689]: 2017-03-18 23:43:23                0x00000001        [ddns] OnStatusChanged -> okKeepAliveRecvedMar 18 23:43:23 raspberrypi oray_serve[689]: status:4根据文档提示:https://docs.docker.com/engine/installation/linux/linux-postinstall/创建docker用户组, sudo groupadd dockersudo usermod -aG docker $USER

2、继续启动,发现还是报错

Mar 18 23:47:49 raspberrypi dockerd[28527]: /usr/bin/dockerd: error while loading shared libraries: libapparmor.so.1: cannot open shared object file: No such file or d

解决办法:缺少依赖包,继续安装

apt-get install libapparmor1

###3、docker run hello-world发现timeout

Unable to find image 'hello-world:latest' locallydocker: Error response from daemon: Get https://registry-1.docker.io/v2/library/hello-world/manifests/latest: Get https://auth.docker.io/token?scope=repository%3Alibrary%2Fhello-world%3Apull&service=registry.docker.io: net/http: TLS handshake timeout.

解决办法:改用国内镜像

vi /etc/docker/daemon.json# 内容如下,新版使用这种方式配置,和之前的有区别,参考这个https://docs.docker.com/engine/reference/commandline/dockerd/#/daemon-configuration-file{  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]}sudo service docker restart

4、docker run hello-world 此处报错

standard_init_linux.go:178: exec user process caused "exec format error"

解决方案:原因是镜像版本不对,树莓派需要使用docker run armhf/hello-world

###5、运行简单的jarjava源码

public class DockerTest{        public static void main(String[] args) throws Exception{                System.out.println("hello world");        }}

经过编译,打包为dockerjava.jardockerfile文件内容:

# java版本必须是armhf,否则会提示异常standard_init_linux.go:178: exec user process caused "exec format error"FROM armhfbuild/java VOLUME /tmpADD dockerjava.jar /app.jarCMD java -jar /app.jar

大功告成

root@raspberrypi:/u02/docker#  docker build -t hello-java .Sending build context to Docker daemon 9.216 kBStep 1/4 : FROM armhfbuild/javalatest: Pulling from armhfbuild/javaa3ed95caeb02: Pull complete cc755030d803: Pull complete 45cef0a2caa7: Pull complete e9fb2d3feaa1: Pull complete 01896f522502: Pull complete b79812d20a3d: Pull complete f4de4a92a47d: Pull complete 69a8f602f62d: Pull complete Digest: sha256:e32fd699d42d09e049ded4624f0a9c50b1237853859b3e658dc9f5c5b544ab4bStatus: Downloaded newer image for armhfbuild/java:latest ---> 2c4f3e2b6be5Step 2/4 : VOLUME /tmp ---> Running in 1937881bc764 ---> bcebdbde871eRemoving intermediate container 1937881bc764Step 3/4 : ADD dockerjava.jar /app.jar ---> a63205b5b6cbRemoving intermediate container f4c3c891e76cStep 4/4 : CMD java -jar /app.jar ---> Running in 2a2540964e7f ---> b6bec8602898Removing intermediate container 2a2540964e7fSuccessfully built b6bec8602898root@raspberrypi:/u02/docker#  docker run hello-javahello world

总结

树莓派是arm处理器,所以在下载镜像的时候一定要注意。

广告 广告

评论区