树莓派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
阅读全文
0 0
- 树莓派docker
- docker
- docker
- docker
- docker
- Docker
- Docker
- docker
- Docker
- Docker
- Docker
- Docker
- docker
- Docker
- Docker
- docker
- Docker
- Docker
- 全选+删除+网络请求
- NOIP复赛复习(十八)反转问题与弹性碰撞
- C++、Qt 学习链接
- Android6.0动态权限申请
- java.lang.IllegalStateException: The specified child already has a parent错误解决
- 树莓派docker
- CSS基础知识
- 51nod 1402 最大值问题
- pointer-like classes智能指针笔记----C++学习之路
- linux驱动——内核通知链(探究i2c-dev.c 中的bus_register_notifier函数所得)
- Annotation注释
- 数据一致性分类
- 20171103
- Eclipse 安装 SVN 插件的两种方法