Docker-Swarm集-Portainer使⽤总结
⼀、安装Docker
1.windows7下安装docker
是的,现在还是有⼈⽤windows7的,因为没有Hyper-V,所以并不能使⽤docker for windows,但是可以使⽤docker toolbox,也有⼈喜欢放到linux虚拟机⾥⽤(docker for windows也是带了linux内核)。
点击进⾏下载。
安装完成后,如果你之前安装过git,那么打开Docker Quickstart Terminal可能会报错“bush⽆法到”,你需要点击Docker Quickstart Terminal右键属性,⼿动改成你Git⽬录下的。
打开后初始化需要下载boot2docker.iso,必定龟速,可以⼿动下载。复制⽂件boot2docker.iso到
C:\Users\mid1507\.docker\machine\cache\boot2docker.iso⽬录,重新打开Docker Quickstart Terminal。
详见:
这时候就已经可以在win7下使⽤docker了。
注意,Docker Quickstart Terminal的主机并不是windows,⽽是它⾃⼰构建的⼀个linux系统,所以你并不能通过localhost访问docker 容器,得访问这个内置Linux的IP,⼀般情况下这个地址是192.168.99.100。
另见
busybox安装2.windows10下安装docker
这就⽐较简单,直接下载安装,没遇到什么坑。
3.Linux下安装docker
采⽤yum安装的话,直接yum search docker就可以到了。因为⽣产上多⽤的是centos7,这⾥给⼀下aliyun的镜像。
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=mirrors.aliyun/docker-ce/linux/centos/7/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=mirrors.aliyun/docker-ce/linux/centos/gpg
然后操作⼀下:
po /pos.po
yum makecache
yum install docker-ce -y
#开机⾃启docker
systemctl enable docker
#重启docker
systemctl daemon-reload
systemctl restart docker
4.配置守护进程daemon.json
vi /etc/docker/daemon.json
{
"insecure-registries": [""]
}
如果搭建了⾃⼰的docker仓库或者使⽤他⼈的仓库,需要在这⾥添加上去。
5.配置VSCODE使⽤
搜索官⽅扩展插件Docker,装好之后,进⼊个⼈配置中,搜索docker,装好后就可以⽤了。
Windows7的话在这之后你就不需要Docker Quickstart Terminal了,打开Oracle VM VirtualBox虚拟机启动linux就可以了。Windows10和Linux下开箱即⾷,简单配置下就好。
⼆、Docker的基本使⽤
1.docker基本命令
docker search rabbitmq # 查仓库中有关rabbitmq的镜像。
docker pull 3.7.7-management # 可以根据tag也可以根据image id进⾏下载。docker tag rabbitmq:3.7.7 rabbitmq:test  # tag
docker save -o /opt/rabbitmq.tar  3.7.7-management # 保存镜像
docker images # 查看已下载的镜像。
# 启动⼀个容器,运⾏镜像
# -d  后台运⾏容器;
# --name  指定容器名;
# -p  指定服务运⾏的端⼝(5672:应⽤访问端⼝;15672:控制台Web端⼝号);# df80af9ca0c9  镜像ID
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672  df80af9ca0c9 docker ps # 查看正在运⾏容器
docker port rabbitmq # 查看容器rabbitmq的⽹络情况
docker stop rabbitmq # 关闭容器rabbitmq
docker rm rabbitmq # 删除容器rabbitmq
docker rmi XXX # 按镜像ID删除镜像
docker build -t XXX . # 将项⽬制作成⼀个镜像(需要dockerfile⽂件⽀持)
2.Linux使⽤yum如何卸载Docker
systemctl stop docker.service
yum list installed|grep docker
yum –y remove docker.x86_64
yum –y remove docker-client.x86_64
yum –y remove docker-common.x86_64
rm -rf /var/lib/docker
3.Docker的重启
systemctl start docker # 启动
sudo systemctl daemon-reload # 守护进程重启
systemctl restart  docker # 重启docker服务
sudo service docker restart # 重启docker服务
service docker stop # 关闭docker
systemctl stop docker # 关闭docker
4.制作镜像
⾸先需要写⼀个Dockerfile
之后进⼊Dockerfile所在⽂件夹就可以⽤ docker build t todolist-service:master . (注意后⾯的点)⽬录⽣成镜像了。
jar包⽐较简单,如果是前端项⽬,涉及到路径问题,必须在Linux下将前端项⽬打包,然后再制作镜像。
5.部署Docker Swarm集
很简单,使⽤docker swarm init 命令就可以创建集,让其他机器加⼊就可以。
注意防⽕墙,因为各个机器之间需要进⾏通信。
当然Swarm还有很多概念,Service、Stack、Overlay等等。
创建⼀个service
docker service create --name demo busybox sh -c "while true;do sleep 3600;done"
创建⼀个overlay⽹络
因为不确定创建的容器运⾏在哪个节点主机上⾯,所以需要保证不同主机之间的容器能够通信,这就需要创建⼀个overlay的⽹络。docker network create -d overlay demo
这⾥稍微提⼀提,其实还有很多坑,⾃⾏⾕歌。
三、疑难技巧
1.如何删除Docker Swarm中的Node
Docker node ls
Docker node demote
Docker swarm leave
Docker node remove
2.如何解决docker集节点的容器⽆法访问⽹络/互相访问的问题
# docker info查看是否有报错,如果有以下:
WARNING: IPv4 forwarding is disabled
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
vim /f
# 配置转发
net.ipv4.ip_forward=1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
# 重启服务,让配置⽣效
systemctl restart network
3.修改了本机IP,⽆法访问Docker
重启Linux或者systemctl restart network就好。
4.进⼊docker容器并复制⽂件
# 进⼊容器内部环境
docker exec -it 775c7c9ee1e1 /bin/bash
# 退出容器
exic
# 将容器内的jar包复制到Linux /opt路径下
docker cp 4a1c4d6a18ca:/usr/local/ly-cloud-config-server-0.0.1-SNAPSHOT.jar /opt
5.如何在已部署的集添加节点?
在集Manage节点下执⾏命令⾏:
docker swarm join-token worker
随后得到⼀个命令⾏:
将这⾏命令复制到你要添加集的机器上运⾏,随后在portiner的swarm中就可以看到,机器已经加⼊了集。如何更改节点的名称?直接更改hostname:
hostnamectl set-hostname p1
service docker restart
四、使⽤Portainer图形界⾯管理Docker
安装portainer,先写⼀个l⽂件(Docker Stack暂且不表)。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。