第一步:进入root&远程连接
1.树莓派ssh进入命令行
(1) 建议安装方式(命令行安装)
输入命令:sudo apt-get update sudo apt-get upgrade
sudo curl -sSL https://get.docker.com | sh 或 curl -fsSL get.docker.com -o get-docker.sh && sh get-docker.sh
参考:https://www.cnblogs.com/codelove/p/10443221.html
(2)窗口安装:参考-->https://www.jianshu.com/p/21ecf7ce1ce9
2.测试安装是否成功
执行:sudo docker run hello-world
3.设置无需sudo执行docker
解决方案:用docker创建一个用户
sudo groupadd docker # 创建docker用户组
sudo gpasswd -a $USER docker # 把当前用户加入到docker用户组
newgrp docker # 更新当前用户组变动(就不用退出并重新登录了)
4.docker常用命令
(1)docker version docker info
(2)docker search
(3) docker pull
(4)docker login docker logout
(5)docker inages
(6)docker ps
(7)docker rmi
(8)docker rm
(9)docker history
(10)docker start/stop/restart
(11)docker kill
(12)docker events
(13)docker save
(14)docker load
(15)docker export
(16)docker import
(17)docker top
(18)docker inspect
(19)docker pause/unpause
(20)docker tag
(21)docker push
(22)docker logs
(23)docker run
1、先用pi用户登录树莓派
pi@raspberrypi:~ $ sudo passwd root
输入新的 UNIX 密码:4558094
重新输入新的 UNIX 密码:4558094
passwd:已成功更新密码
pi@raspberrypi:~ $
SSH远程:192.168.16.244
路由器 密码:12345678
账号:pi
密码:raspberry
2、然后修改超级用户root密码
sudo passwd root
3、切换到root用户
su - root
4、修改 /etc/apt/sources.list
sudo nano /etc/apt/sources.list
原文deb http://mirrordirector.raspbian.org/raspbian/ stretch main contrib non-free rp, 加#注释掉
加入如下阿里源,deb http://mirrors.aliyun.com/raspbian/raspbian/ stretch main contrib non-free rpi
5、修改/etc/apt/sources.list.d/raspi.list
sudo nano /etc/apt/sources.list.d/raspi.list
原文deb http://archive.raspberrypi.org/debian/ stretch main ui, 加#
加入如下科大源:deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian/ stretch main ui
6、更新系统和软件
sudo apt-get update && apt-get upgrade
第二步:更换镜像源
登陆到树莓派。你可以通过屏幕键鼠直接打开终端或者通过putty SSH登陆到树莓派。
修改软件更新源,执行如下命令:
sudo nano /etc/apt/sources.list
将第一行修改成中科大的软件源地址,「Ctrl+O」进行保存,然后回车,「Ctrl+X」退出。
deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
修改系统更新源,执行如下命令:
sudo nano /etc/apt/sources.list.d/raspi.list
将第一行修改成中科大的系统源地址,「Ctrl+O」进行保存,然后回车,「Ctrl+X」退出。
deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian/ stretch main ui
同步更新源,执行如下命令:
sudo apt-get update
更新升级以安装软件包,这个过程耗时较长。
sudo apt-get upgrade
安装方法一(脚本安装)
脚本安装是最推荐的方式,只需要输入下面的命令,等待自动安装好即可。
sudo curl -sSL https://get.docker.com | sh
测试 Docker
运行 hello-world 镜像来做一个测试。
sudo docker run hello-world
root@raspberrypi:~# sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c1eda109e4da: Pull complete
Digest: sha256:4df8ca8a7e309c256d60d7971ea14c27672fc0d10c5f303856d7bc48f8cc17ff
Status: Downloaded newer image for hello-world:latest
*****Hello from Docker!*****
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(arm32v7)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
**
常用命令
**
#查看 Docker 版本
docker -v
sudo docker pull 仓库/镜像:版本(留空的话默认为 latest)
sudo docker run 加参数,用来创建容器
#查看运行容器
sudo docker ps
#查看所有下载的镜像
sudo docker images
#进入容器终端
sudo docker exec -i -t ha /bin/bash
#实时查看10行的 ha 日志
sudo docker logs -f -t --tail 10 ha
#重启 systemctl 守护进程
sudo systemctl daemon-reload
#设置 Docker 开机启动
sudo systemctl enable docker
#开启 Docker 服务
sudo systemctl start docker
#下载 Docker 图形化界面 portainer
sudo docker pull docker.io/portainer/portainer
#创建 portainer 容器
sudo docker volume create portainer_data
#运行 portainer
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
**
问题1
**
Docker我配置的时阿里云的镜像加速器,详情:https://blog.csdn.net/M82_A1/article/details/91957886
但是运行 docker search mysql查找mysql镜像时就报错:
Error response from daemon: Get https://index.docker.io/v1/search?q=mysql&n=25: dial tcp 52.200.132.201:443: i/o timeout
百度后发现说是需要将 daemon.json 修改为Docker中国官方镜像加速:
新版的 Docker 使用 /etc/docker/daemon.json 来配置 Daemon。
请在该配置文件中修改(没有该文件的话,请先建一个):
touch /etc/docker/daemon.json
追加以下内容:
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
**
问题2
**
以下问题及解决方法都在Ubuntu16.04下,其他环境类似
问题描述
安装完docker后,执行docker相关命令,出现
”Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.26/images/json: dial unix /var/run/docker.sock: connect: permission denied“
原因
摘自docker mannual上的一段话
Manage Docker as a non-root user
The docker daemon binds to a Unix socket instead of a TCP port. By default that Unix socket is owned by the user root and other users can only access it using sudo. The docker daemon always runs as the root user.
If you don’t want to use sudo when you use the docker command, create a Unix group called docker and add users to it. When the docker daemon starts, it makes the ownership of the Unix socket read/writable by the docker group.
大概的意思就是:docker进程使用Unix Socket而不是TCP端口。而默认情况下,Unix socket属于root用户,需要root权限才能访问。
解决方法1
使用sudo获取管理员权限,运行docker命令
解决方法2
docker守护进程启动的时候,会默认赋予名字为docker的用户组读写Unix socket的权限,因此只要创建docker用户组,并将当前用户加入到docker用户组中,那么当前用户就有权限访问Unix socket了,进而也就可以执行docker相关命令
sudo groupadd docker #添加docker用户组
sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中
newgrp docker #更新用户组
docker ps #测试docker命令是否可以使用sudo正常使用
问题3
最近公司使用了docker容器化部署项目,在安装完成后去搜索镜像资源出了这个问题,百度看了很多解决方案都不行 。
开始以为是镜像加速器没配好,就试着重新配置镜像加速器、重装了docker,折腾了一番依然没有解决。
具体错误信息:
pi@raspberrypi:~ $ docker search mysql
Got permission denied while trying to connect to the Docker daemon socket at uni x:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/images/sea rch?limit=25&term=mysql: dial unix /var/run/docker.sock: connect: permission den
最后发现是机器网络配置出了问题,解决方案:
查看服务器DNS网络配置
vi /etc/resolv.conf
把里面的内容清除,并改为:
nameserver 8.8.8.8
nameserver 8.8.8.4
重启网络服务
systemctl restart network
按照上述步骤便可完美解决。
镜像源有效
**
## root@debian:~# docker pull docker.io/portainer/portainer
**
Using default tag: latest
latest: Pulling from portainer/portainer
d1e017099d17: Pull complete
8ca27898abd9: Pull complete
Digest: sha256:166ea71afde944c36758bbe42389d18c100f431fe72aacdc2e8c32ae9d9f0535
Status: Downloaded newer image for portainer/portainer:latest
root@debian:~# docker volume create portainer_data
portainer_data
root@debian:~# docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
5a9e7c4d7e1be0e1262fb255162a14608dbc54c8ca5c98ed492dfe4510913b35
1万+

被折叠的 条评论
为什么被折叠?



