测试环境docker-swarm安装部署
测试环境swarm安装部署
部署前增加监听docker2375端口
centos 增加tcp监听端口
修改/lib/systemd/system/docker.service sed -i ‘s/ExecStart=.*/ExecStart=\/usr\/bin\/dockerd -H unix\:\/\/\/var\/run\/docker.sock -D -H tcp\:\/\/0.0.0.0\:2375/g‘ /lib/systemd/system/docker.service
即
ExecStart=/usr/bin/dockerd
修改为
ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375 --insecure-registry 172.28.2.2:4000
ubuntu 16.04
检查
docker -H 127.0.0.1:2375 images
配置
service docker stop
vim /etc/default/docker
DOCKER_OPTS="-H unix:///var/run/docker.sock -H 0.0.0.0:2375 --insecure-registry 172.28.2.2:4000 --storage-driver=aufs"
vim /lib/systemd/system/docker.service
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
EnvironmentFile=-/etc/default/docker
ExecStart=/usr/bin/docker daemon -H fd:// $DOCKER_OPTS
ExecReload=/bin/kill -s HUP $MAINPID
systemctl daemon-reload
service docker restart
docker info 查看
echo "nameserver 202.96.199.133" >> /etc/resolv.conf
docker pull swarm
1、docker swarm init --advertise-addr 21.1.7.1
Swarm initialized: current node (8ibltkyaaokbc74rtxrjzw4u7) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join \
--token SWMTKN-1-0wpx9adiq0rtm3i4wnojmpsi2sxrdu3j631lywwf0imq7p93m0-1j4gjmk51kv7boicmsasl6lyo \
21.1.7.1:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
2、节点加入
执行上述红色字体命令
docker node ls
3、节点删除
docker swarm leave --help //查看帮助
docker swarm leave --force
4、节点离线:再次修改为active状态(及将下线的节点再次上线)
docker node update --availability drain node1
上线
docker node update --availability drain node1
---部署可视化界面
manager-node节点(182.48.115.237)
docker pull progrium/consul
docker pull rethinkdb
docker pull shipyard/shipyard
##docker pull dockerclub/shipyard
docker pull gliderlabs/registrator
node1和node2节点上
docker pull progrium/consul
docker pull gliderlabs/registrator
2)启动consul
manager-node节点 21.1.7.1
docker run -d -p 8300:8300 -p 8301:8301 -p 8301:8301/udp -p 8302:8302 -p 8302:8302/udp -p 8400:8400 -p 8500:8500 -p 8600:53 -p 8600:53/udp -h manager-node --restart=always --name=consul progrium/consul -server -bootstrap -ui-dir=/ui -advertise 21.1.7.1 -client 0.0.0.0
删除consule命令(下面命令中的"consul"是启动consul命令中的--name后面的设置名)
# docker rm -f consul
node-pc2节点(21.1.7.2)
docker run -d --restart=always -p 8300:8300 -p 8301:8301 -p 8301:8301/udp -p 8302:8302 -p 8302:8302/udp -p 8400:8400 -p 8500:8500 -h node-pc2 --name=consul progrium/consul -server -join 21.1.7.1 -advertise 21.1.7.2 -client 0.0.0.0
node-pc3节点(21.1.7.3)
docker run -d --restart=always -p 8300:8300 -p 8301:8301 -p 8301:8301/udp -p 8302:8302 -p 8302:8302/udp -p 8400:8400 -p 8500:8500 -h node-pc3 --name=consul progrium/consul -server -join 21.1.7.1 -advertise 21.1.7.3 -client 0.0.0.0
3)安装Swarm+Shipyard
###英文版手动安装步骤,使用英文版安装,安装后,参考测试部定制shipyard 中文静态插件,进行汉化
manager-node节点(21.1.7.1)
docker run -d --restart=always --name shipyard-rethinkdb -p 18080:8080 rethinkdb
docker run -d -p 3375:3375 --restart=always --name shipyard-swarm-manager swarm:latest manage --host tcp://0.0.0.0:3375 consul://21.1.7.1:8500
docker run -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 21.1.7.1:2375 consul://21.1.7.1:8500
pc2节点(21.1.7.2)
[root@node1 ~]# docker run -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 21.1.7.2:2375 consul://21.1.7.1:8500
若使用docker-machine安装的docker,使用了TLS验证,则通过下述命令创建manager-node he agent容器
##docker run -d --restart=always --name shipyard-rethinkdb -p 18080:8080 rethinkdb
docker run -d -p 3376:3376 --restart=always -v /root/.docker/machine/certs:/certs:ro --name shipyard-swarm-manager2 swarm:latest manage --tlsverify --tlscacert=/certs/ca.pem --tlscert=/certs/cert.pem --tlskey=/certs/key.pem --host tcp://0.0.0.0:3376 consul://21.1.7.1:8500
docker run -d --restart=always -v /etc/docker:/certs:ro --name shipyard-swarm-agent swarm:latest join --addr=21.1.8.3:2375 --discovery-opt kv.cacertfile=/certs/ca.pem --discovery-opt kv.certfile=/certs/server.pem --discovery-opt kv.keyfile=/certs/server-key.pem consul://21.1.7.1:8500
可通过命令查看证书位置
ps aux | grep docker
https://docs.docker.com/swarm/discovery/#use-tls-with-distributed-keyvalue-discovery
swarm join \ --advertise=<node_ip:2375> \ --discovery-opt kv.cacertfile=/path/to/mycacert.pem \ --discovery-opt kv.certfile=/path/to/mycert.pem \ --discovery-opt kv.keyfile=/path/to/mykey.pem \ consul://<consul_addr>/<optional path prefix>
node2节点(21.1.9.1)
[root@node2 ~]# docker run -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 21.1.9.1:2375 consul://21.1.7.1:8500
接着再回到manager-node节点上如下操作
docker run -d --restart=always --name shipyard-controller --link shipyard-rethinkdb:rethinkdb --link shipyard-swarm-manager:swarm -p 8080:8080 shipyard/shipyard:latest server -d tcp://swarm:3375
若8080被占用,可通过下述方式删除相关进程,或修改上述8080端口
netstat -tlnp | grep 8080
tcp6 0 0 :::8080 :::* LISTEN 2123/java
tcp6 0 0 :::18080 :::* LISTEN 21350/docker-proxy
kill -9 2123
---------------------------------------------------
##中文版手动安装步骤(使用consule):中文版本较旧,不支持仓库v2,不执行
docker pull dockerclub/shipyard:latest
docker run -d --restart=always --name shipyard-rethinkdb -p 18080:8080 rethinkdb
docker run -d -p 3375:3375 --restart=always --name shipyard-swarm-manager swarm:latest manage --host tcp://0.0.0.0:3375 consul://21.1.7.1:8500
node1节点(21.1.8.3)
[root@node1 ~]# docker run -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 21.1.8.3:2375 consul://21.1.7.1:8500
node2节点(21.1.9.1)
[root@node2 ~]# docker run -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 21.1.9.1:2375 consul://21.1.7.1:8500
接着再回到manager-node节点上如下操作
docker run -d --restart=always --name shipyard-controller --link shipyard-rethinkdb:rethinkdb --link shipyard-swarm-manager:swarm -p 8080:8080 dockerclub/shipyard:latest server -d tcp://swarm:3375
###中文版deploy安装步骤(未使用consule,发现使用的为microbox/etcd:latest,端口4001):
1.修改为下载中文镜像 wget https://shipyard-project.com/deploy grep -n shipyard:latest deploy sed -i 's/shipyard\/shipyard:latest/dockerclub\/shipyard:latest/g' deploy
镜像名
##docker pull dockerclub/shipyard:latest
2.修改端口 #确保8080端口没有被使用,否则要修改脚本 yum install -y net-tools netstat -tlnp | grep 8080 #修改脚本 grep -n 'PORT:-8080' deploy SHIPYARD_PORT=${PORT:-8080} 修改为 SHIPYARD_PORT=${PORT:-指定端口} #列 sed 's/PORT:-8080/PORT:-8090/g' deploy | grep "PORT:-8090"
c.安装与删除
#安装 sh deploy #删除 cat deploy | ACTION=remove bash
d.访问shipyard
浏览器输入:http://主机IP:8080 账号:admin 密码:shipyard
#添加节点 curl https://shipyard-project.com/deploy | ACTION=node DISCOVERY=etcd://主服务器IP:4001 bash
查看节点是否添加成功
4)registrator状态获取
manager-node节点(21.1.7.1)
[root@manager-node ~]# docker run -d --restart=always --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 21.1.7.1 consul://21.1.7.1:8500
node1节点(21.1.7.2)
[root@node1 ~]# docker run -d --restart=always --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 21.1.7.2 consul://21.1.7.1:8500
node2节点(21.1.7.3)
[root@node2 ~]# docker run -d --restart=always --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 21.1.7.3 consul://21.1.7.1:8500
参数解释:
-v /var/run/docker.sock:/tmp/docker.sock 映射docker的socket到container中的对应位置, 这样 registration 就能监控有哪些服务启动了.
consul://localhost:8500 consul 绑定到本地的 consul 接口上
-----------------------------------------
-----------------------------------------
5)总结节点执行步骤:
1 加入节点
docker swarm join \
--token SWMTKN-1-0wpx9adiq0rtm3i4wnojmpsi2sxrdu3j631lywwf0imq7p93m0-1j4gjmk51kv7boicmsasl6lyo \
21.1.7.1:2377
docker pull progrium/consul
docker pull gliderlabs/registrator
docker pull swarm
2 启动consul
node-pc2节点(21.1.7.2)
docker run -d --restart=always -p 8300:8300 -p 8301:8301 -p 8301:8301/udp -p 8302:8302 -p 8302:8302/udp -p 8400:8400 -p 8500:8500 -h node-pc2 --name=consul progrium/consul -server -join 21.1.7.1 -advertise 21.1.7.2 -client 0.0.0.0
node-pc3节点(21.1.7.3)
docker run -d --restart=always -p 8300:8300 -p 8301:8301 -p 8301:8301/udp -p 8302:8302 -p 8302:8302/udp -p 8400:8400 -p 8500:8500 -h node-pc3 --name=consul progrium/consul -server -join 21.1.7.1 -advertise 21.1.7.3 -client 0.0.0.0
node-pc4节点(21.1.8.1)
docker run -d --restart=always -p 8300:8300 -p 8301:8301 -p 8301:8301/udp -p 8302:8302 -p 8302:8302/udp -p 8400:8400 -p 8500:8500 -h node-pc4 --name=consul progrium/consul -server -join 21.1.7.1 -advertise 21.1.8.1 -client 0.0.0.0
node-pc5节点(21.1.8.2)
docker run -d --restart=always -p 8300:8300 -p 8301:8301 -p 8301:8301/udp -p 8302:8302 -p 8302:8302/udp -p 8400:8400 -p 8500:8500 -h node-pc5 --name=consul progrium/consul -server -join 21.1.7.1 -advertise 21.1.8.2 -client 0.0.0.0
node-pc6节点(21.1.8.3)
docker run -d --restart=always -p 8300:8300 -p 8301:8301 -p 8301:8301/udp -p 8302:8302 -p 8302:8302/udp -p 8400:8400 -p 8500:8500 -h node-pc6 --name=consul progrium/consul -server -join 21.1.7.1 -advertise 21.1.8.3 -client 0.0.0.0
node-pc7节点(21.1.9.1)
docker run -d --restart=always -p 8300:8300 -p 8301:8301 -p 8301:8301/udp -p 8302:8302 -p 8302:8302/udp -p 8400:8400 -p 8500:8500 -h node-pc7 --name=consul progrium/consul -server -join 21.1.7.1 -advertise 21.1.9.1 -client 0.0.0.0
node-pc8节点(21.1.9.2)
docker run -d --restart=always -p 8300:8300 -p 8301:8301 -p 8301:8301/udp -p 8302:8302 -p 8302:8302/udp -p 8400:8400 -p 8500:8500 -h node-pc8 --name=consul progrium/consul -server -join 21.1.7.1 -advertise 21.1.9.2 -client 0.0.0.0
node-pc9节点(21.1.9.3)
docker run -d --restart=always -p 8300:8300 -p 8301:8301 -p 8301:8301/udp -p 8302:8302 -p 8302:8302/udp -p 8400:8400 -p 8500:8500 -h node-pc9 --name=consul progrium/consul -server -join 21.1.7.1 -advertise 21.1.9.3 -client 0.0.0.0
node-pc10节点(21.1.10.1)
docker run -d --restart=always -p 8300:8300 -p 8301:8301 -p 8301:8301/udp -p 8302:8302 -p 8302:8302/udp -p 8400:8400 -p 8500:8500 -h node-pc10 --name=consul progrium/consul -server -join 21.1.7.1 -advertise 21.1.10.1 -client 0.0.0.0
node-pc11节点(21.1.10.2)
docker run -d --restart=always -p 8300:8300 -p 8301:8301 -p 8301:8301/udp -p 8302:8302 -p 8302:8302/udp -p 8400:8400 -p 8500:8500 -h node-pc11 --name=consul progrium/consul -server -join 21.1.7.1 -advertise 21.1.10.2 -client 0.0.0.0
node-pc12节点(21.1.10.3)
docker run -d --restart=always -p 8300:8300 -p 8301:8301 -p 8301:8301/udp -p 8302:8302 -p 8302:8302/udp -p 8400:8400 -p 8500:8500 -h node-pc12 --name=consul progrium/consul -server -join 21.1.7.1 -advertise 21.1.10.3 -client 0.0.0.0
3创建平台agent容器
manage-node
docker run -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 21.1.7.1:2375 consul://21.1.7.1:8500
pc2
docker run -d --restart=always --name shipyard-swarm-agent-pc2 swarm:latest join --addr 21.1.7.2:2375 consul://21.1.7.1:8500
pc3
docker run -d --restart=always --name shipyard-swarm-agent-pc3 swarm:latest join --addr 21.1.7.3:2375 consul://21.1.7.1:8500
pc4
docker run -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 21.1.8.1:2375 consul://21.1.7.1:8500
pc5
docker run -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 21.1.8.2:2375 consul://21.1.7.1:8500
pc6
docker run -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 21.1.8.3:2375 consul://21.1.7.1:8500
pc7
docker run -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 21.1.9.1:2375 consul://21.1.7.1:8500
pc8
docker run -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 21.1.9.2:2375 consul://21.1.7.1:8500
pc9
docker run -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 21.1.9.3:2375 consul://21.1.7.1:8500
pc10
docker run -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 21.1.10.1:2375 consul://21.1.7.1:8500
pc11
docker run -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 21.1.10.2:2375 consul://21.1.7.1:8500
pc12
docker run -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr 21.1.10.3:2375 consul://21.1.7.1:8500
4registrator状态获取
manage-node
docker run -d --restart=always --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 21.1.7.1 consul://21.1.7.1:8500
pc2
docker run -d --restart=always --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 21.1.7.2 consul://21.1.7.1:8500
pc3
docker run -d --restart=always --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 21.1.7.3 consul://21.1.7.1:8500
pc4
docker run -d --restart=always --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 21.1.8.1 consul://21.1.7.1:8500
pc5
docker run -d --restart=always --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 21.1.8.2 consul://21.1.7.1:8500
pc6
docker run -d --restart=always --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 21.1.8.3 consul://21.1.7.1:8500
pc7
docker run -d --restart=always --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 21.1.9.1 consul://21.1.7.1:8500
pc8
docker run -d --restart=always --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 21.1.9.2 consul://21.1.7.1:8500
pc9
docker run -d --restart=always --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 21.1.9.3 consul://21.1.7.1:8500
pc10
docker run -d --restart=always --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 21.1.10.1 consul://21.1.7.1:8500
pc11
docker run -d --restart=always --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 21.1.10.2 consul://21.1.7.1:8500
pc12
docker run -d --restart=always --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator -ip 21.1.10.3 consul://21.1.7.1:8500
页面访问
http://21.1.7.1:8080
admin / shipyard
用户全拼/Pass@word
打开http://21.1.7.1:8500,访问consul服务
https://www.cnblogs.com/ikodota/p/docker_swarm_shipyard.html
仅安装swarm和shipyard相关命令
master执行
docker swarm init --advertise-addr 172.28.2.200 docker run --rm swarm create docker run -ti -d -p 2376:2375 --restart=always --name shipyard-swarm-manager swarm:latest manage --host tcp://0.0.0.0:2375 token://b31e4f1643bf25ee399092217471f407 docker run -ti -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr $(ifconfig | grep "inet addr" | grep -vE '17.0|18.0|127.0|192.' | cut -d : -f 2 | cut -d " " -f 1):2375 token://b31e4f1643bf25ee399092217471f407
节点执行
docker swarm join --token SWMTKN-1-0c4bkm0n8qmeo39vgxq8d8xonlfb46j2jl5upanlxmxuhiic0j-675w8z3l97mxu19l4oz3tav5t 172.28.2.200:2377 docker tag 172.28.2.2:4000/swarm:latest swarm:latest docker run -ti -d --restart=always --name shipyard-swarm-agent swarm:latest join --addr $(ifconfig | grep "inet addr" | grep -vE '17.0|18.0|127.0|192.' | cut -d : -f 2 | cut -d " " -f 1):2375 token://b31e4f1643bf25ee399092217471f407
master执行
docker run -ti -d --restart=always --name shipyard-rethinkdb -p 8082:8080 -p 28015:28015 -p 29015:29015 -v /opt/rethinkdb:/data rethinkdb docker run -d --restart=always --name shipyard-controller --link shipyard-rethinkdb:rethinkdb --link shipyard-swarm-manager:swarm -p 8080:8080 shipyard/shipyard server -d tcp://swarm:2375
web访问
http://172.28.2.200:8082 rethinkDB
http://172.28.2.200:8080 shipyard
shipyard汉化:https://github.com/GeekCloud-Team/shipyard_zh
shipyard_zhshipyard 中文静态插件用法:1.删除英文静态网页docker exec -it shipyard-controller rm -rf static/appdocker exec -it shipyard-controller rm -f static/index.html2.下载中文静态页面git clone https://github.com/StarWars-Team/shipyard_zh.git3.将汉化文件拷贝到Docker docker cp shipyard_zh/static/app shipyard-controller:/static/docker cp shipyard_zh/static/index.html shipyard-controller:/static/4.删除本地文件rm -rf shipyard_zh/
View Code
默认密码admin / shipyard
转载于:https://www.cnblogs.com/DaweiJ/p/8462973.html
测试环境docker-swarm安装部署相关推荐
- 使用Docker快速安装部署ES和Kibana并配置IK中文分词器以及自定义分词拓展词库
使用Docker快速安装部署ES和Kibana的前提:首先需要确保已经安装了Docker环境 如果没有安装Docker的话,可以参考上一篇的内容:Linux上安装Docker 有了Docker环境后, ...
- 使用Docker快速安装部署mysql
使用Docker快速安装部署mysql的前提:首先需要确保已经安装了Docker环境 如果没有安装Docker的话,可以参考上一篇的内容:Linux上安装Docker 有了Docker环境后,就可以使 ...
- Docker ElK安装部署使用教程
Docker ElK安装部署使用教程 原文:Docker ElK安装部署使用教程 一.简介 1.核心组成 ELK由Elasticsearch.Logstash和Kibana三部分组件组成: Elast ...
- Docker Swarm从部署到基本操作
关于Docker Swarm Docker Swarm由两部分组成: Docker集群:将一个或多个Docker节点组织起来,用户就能以集群的方式进行管理: 应用编排:有一套API用来部署和管理容器: ...
- Docker swarm 实战-部署wordpress
Docker swarm 实战-部署wordpress 创建一个overlay的网络 docker network create -d overlay demo6imq8da3vcwvj2n499k4 ...
- 单机版Docker Swarm安装及试用
Docker Swarm简介 Docker是一种运行于 Linux 和 Windows 上的软件,用于创建.管理和编排容器.Swarm 是Docker官方提供的一款集群管理工具,其主要作用是把若干台 ...
- network setup service启动后自动停止_一个简单的测试环境下的自动化部署方案
笔者是公司是一个分前后端开发的公司.而笔者是一个普通的后端开发工程师.在和前端工程师协同开发时,为了给前端工程师提供接口,往往要将写好的代码交付并部署到测试环境.因而这导致笔者经常需要打包项目更新到测 ...
- Ubuntu 16.04+.Net Core+Docker+Nginx安装部署
前言 最近公司的项目打算移植到.Net Core平台,所以调研了一下.Net Core在Linux下的安装部署.本篇文章会一步步的描述从安装到配置到部署的全部过程.在文章的结构和内容里,笔者借鉴了很多 ...
- Docker我是真的全(没骗人[三万字巨详细])--Docker虚拟机安装部署及常规操作
Docker 1. 为什么使用Docker 1.1.Docker的使用场景一 1.2.Docker的使用场景二 1.3.Docker的使用场景三 2.Docker 介绍 2.1. 什么是虚拟化 2.2 ...
- 【Docker】安装部署 及相关命令
Docker安装部署 及相关命令 前言 一.安装Docker 1.yum包更新到最新 2. 安装需要的软件包,yum-util 提供yum-config-manager功能,另外两个是devicema ...
最新文章
- sqlserver查询当月的每一天_SQLServer 查询最近一天,三天,一周,一月,一季度数据的方法...
- 问答:双总线并机,可以使用不同品牌的ups吗?
- Google Closure Complier的使用
- 1.14 日志(递推ybtoj)
- 数据异常HTML,@ Html.DropDownListFor的数据绑定异常
- Java描述设计模式(21):状态模式
- Ubuntu 硬盘”分区“图文教程(用于光盘,U盘安装Ubuntu)
- JAVA设计模式(08):结构化-飞锤(Flyweight)
- IOS ViewController 生命周期
- 《JavaScript权威指南第7版》第3章 类型、值和变量
- Merged region B8 must contain 2 or more cells
- 龙芯电脑上配置LAMP环境
- python你好代码-再见,Python。你好,Go语言。
- java privatekey输出字符串_[Java教程]根据字符串(String)生成公钥(PublicKey)和私钥(PrivateKey)对象_星空网...
- matlab 分图 总标题,matlab中figure有多个图时,设定总标题的方法
- 【NOI2015】【BZOJ4199】品酒大会
- Unity之android Drawable数据传递以APPIcon为例
- Vue学习之页面起始页设置
- python怎么利用数据成像_第一张黑洞照片全靠VLBI,这个Github项目教你用Python实现...
- 第八次作业——Excel制作工资表