树莓派docker配置

之前写过docker配置,是在mac环境的,到了今天有些已经不适合了。今天再写一个基于树莓派的docker配置过程,完全基于前几天的折腾

安装启动

修改默认apt源,参考:https://mirrors.tuna.tsinghua.edu.cn/help/raspbian/

sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg2 lsb-release software-properties-common

添加软件源的 GPG 密钥
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/raspbian/gpg | sudo apt-key add

添加 Docker 软件源
sudo add-apt-repository "deb [arch=armhf] https://mirrors.aliyun.com/docker-ce/linux/raspbian $(lsb_release -cs) stable"

开始安装
sudo apt-get update
sudo apt-get install docker-ce

启动
sudo systemctl enable docker
sudo systemctl start docker

建立用户组
sudo groupadd docker
sudo usermod -aG docker $USER

更换pull源
在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件):
{
  "registry-mirrors": [
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
  ]
}
重启
sudo systemctl daemon-reload
sudo systemctl restart docker

安装镜像

拉取镜像
docker pull nginx:latest
docker pull php:7.4-fpm
docker pull hypriot/rpi-mysql (树莓派64位官方mysql源不支持,只能找一个其他的)
启动镜像
docker run -p 80:80 --name nginx -v /cache:/www -v /home/pi/nginxconf:/etc/nginx/conf.d -d nginx
docker run -p 9000:9000 --name php -v /cache:/www -d php:7.4-fpm
docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d -p 3306:3306 hypriot/rpi-mysql

镜像操作

查看已拉取到本地的镜像
docker image ls

查看已运行的容器
docker container ls
docker ps

删除容器
docker rm -f containerid

重启容器
docker restart containerid

进入镜像
docker exec -it containerid /bin/bash
在镜像内默认没有vi编辑器,需要update才能安装

查看各容器IP地址
docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)

复制docker内文件到外面
sudo docker cp containerid:/etc/mysql/my.cnf /home/pi/
复制回去
sudo docker cp  /home/pi/my.cnf  containerid:/etc/mysql/

nginx配置文件

server{
    listen 80;
    server_name www;
    root /www;
    access_log /var/log/nginx/access.log main;
    error_log /var/log/nginx/error.log error;
    location / {
        index index.html index.htm index.php;
    }
    location ~ \.php {
        root /www;
        include fastcgi_params;
        fastcgi_pass 172.17.0.3:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

php安装扩展

默认安装的php扩展如果不够,可以先进入docker执行

docker-php-ext-install gd mysqli
安装完毕,重启容器

目前暂时纪录这些,以后再添加dockerfile内容