树莓派docker

来源:互联网 发布:阿里云服务器 访问慢 编辑:程序博客网 时间:2024/06/05 22:33

初步实践

1、安装

curl -sSL get.docker.com | sh

将当前用户添加到用户组,可以不用再sudo执行

sudo usermod -aG docker $USER

断开连接后重新登录

2、查看信息

系统信息等

docker info

查看可用镜像

docker search tutorial(for example)

本地镜像

docker images

3、基本命令

下载镜像

docker pull learn/tutorial(for example)

容器中执行命令(注意-y

docker run learn/tutorial apt-get install -y ping

得到容器id

docker ps -l

保存对容器的修改(通常选择容器id的前3-4个字符,如698)

docker commit 698 learn/ping

查看容器的更详细信息

docker inspect 698

发布自己的镜像

docker push learn/ping

执行命令

docker exec -it [container name] [command]

makefile制作镜像

docker build -t [user]/[name] .

管理工具

portainer安装

docker pull registry.docker-cn.com/portainer/portainer:linux-arm-1.14.0mkdir -p ~/portaniner/datadocker run -d --name portainer --restart unless-stopped -p 9000:9000 -v ~/portaniner/data:/data -v /var/run/docker.sock:/var/run/docker.sock registry.docker-cn.com/portainer/portainer:linux-arm-1.14.0

docker-compose

安装pip

sudo apt install python-pip

安装compose

cdmkdir dockercomposecd dockercomposesudo pip install virtualenvvirtualenv dockercomposesource dockercompose/bin/activatepip install docker-compose

启动compose

docker-compose up -d

安装工具(树莓派暂时没有支持)

sudo curl -L https://github.com/docker/compose/releases/download/1.17.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-composudo chmod +x /usr/local/bin/docker-compose

实例

docker run -d --name elasticpot --restart always -p 9200:9200 -v /home/pi/log:/opt/ElasticpotPY/log hsdfz0201/elasticpot

集群swarm

1、创建集群

sudo docker swarm init --advertise-addr xxx.xxx.xxx.xxx

2、节点管理(配合portainer)

增加远程api

sudo nano /lib/systemd/system/docker.serviceExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375sudo systemctl daemon-reloadsudo service docker restart

在manager节点上安装portainer

sudo docker service create --name portainer --publish 9000:9000 --constraint 'node.role == manager' --mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock portainer/portainer -H unix:///var/run/docker.sock

添加endpoint ,在portainer 的图形界面即可

3、swarm技巧(重点)

docker swarm指定节点node运行容器。
这里可以在每个节点打标签,然后设置限制条件。
此处官方的说明异常坑爹!!!

首先打标签

sudo nano /lib/systemd/system/docker.serviceExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375 --label hostname=swarm1sudo systemctl daemon-reloadsudo service docker restart

下面是重点!!!
label 的键值对存在engine.labels 下面,官网和其他参考资料完全没说!!!
感谢下面这篇博客的作者
https://blog.lab99.org/post/docker-2016-07-14-faq.html#wei-shi-me-swarm-ji-qun-de-overlay-network-kua-su-zhu-wu-fa-hu-fang

manage 节点执行

xxx@xxx-NF5280M3:~$ sudo docker service create --name test --constraint 'engine.labels.hostname == swarm1' test4wk88tcegp5nb8x9rqjelmpcuoverall progress: 1 out of 1 tasks 1/1: running   [==================================================>] verify: Service converged 

删除集群节点

docker node ls

获取节点列表后

docker node update --availability drain $nodeIDdocker node rm --force $nodeID

删除管理节点

docker swarm leave --force

注意

如果出现不能pull ,可能是树莓派时间有误,ssl 证书不认(ntp端口易被封)
请参考
http://shumeipai.nxez.com/2015/06/28/raspberry-pi-date-and-time-correction-method-allowed.html

原创粉丝点击