树莓派安装Docker
Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。 容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。
安装docker
-
直接通过安装脚本安装
$ curl -sSL https://get.docker.com | sh
-
手动安装
-
安装docker需要的依赖
$ sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
-
添加docker源
$ curl -fsSL https://download.docker.com/linux/raspbian/gpg | sudo apt-key add - $ echo "deb [arch=armhf] https://download.docker.com/linux/raspbian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
-
更新源
$ sudo apt update
-
安装docker
$ sudo apt install docker-ce
-
查看是否安装成功
$ sudo docker --version
-
设置docker国内镜像
$ sudo nano /etc/docker/daemon.json
添加如下内容
{ "registry-mirrors": ["https://registry.docker-cn.com"] }
-
重启docker
$ sudo systemctl restart docker.service
-
开机启动
$ sudo systemctl enable docker.service
-
安装docker可视化管理工具(portainer
)
-
拉取镜像
$ sudo docker pull portainer/portainer-ce
-
启动portainer
$ sudo docker volume create portainer_data $ sudo docker run -d -p 9000:9000 --name portainer \ --restart always -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/data portainer/portainer-ce
打开
9000
端口sudo ufw allow 9000
安装nginx
-
拉取nginx镜像
$ sudo docker pull nginx
-
设置nginx目录
$ mkdir ~/workspace # 创建工作目录(不是必须) $ cd workspace/ $ mkdir nginx # 创建nginx目录 $ mkdir nginx/log # 创建nginx日志目录 $ mkdir nginx/conf # 创建nginx基础配置文件目录 $ nano nginx/conf/nginx.conf # 创建基础配置文件 $ mkdir nginx/conf.d # 创建nginx虚拟主机配置目录 $ nano nginx/conf.d/default.conf # 创建默认nginx虚拟主机配置文件 $ mkdir nginx/html # 创建静态资源目录 $ nano nginx/html/index.html # 创建默认入口页面
-
nginx.conf
user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; }
-
defalut.conf
server { listen 80; server_name localhost; #charset koi8-r; #access_log /var/log/nginx/host.access.log main; location / { root /usr/share/nginx/html; index index.html index.htm; autoindex on; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }
-
index.html
<!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> <style> body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } </style> </head> <body> <h1>Welcome to nginx!</h1> </body> </html>
-
-
启动nginx服务
$ sudo docker run --name web_nginx_server -d -p 80:80 -p 8080:8080 \ -v /home/pi/workspace/nginx/log:/var/log/nginx \ -v /home/pi/workspace/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /home/pi/workspace/nginx/conf.d:/etc/nginx/conf.d \ -v /home/pi/workspace/nginx/html:/usr/share/nginx/html nginx