腾讯轻量云服务器docker(腾讯轻量云服务器 假设传奇)
Docker安装教程
1.在线安装
(使用浏览器扫码进入在线客服窗口)
复制联系方式
curl -fsSL | bash -s docker --mirror Aliyun
在线安装方式二
curl -sSL | sh
3.查看Docker
yum list docker-ce --showduplicates | sort -r
4.查看Docker版本
docker version
5.启动Docker
systemctl start docker
6.测试Docker是否启动成功
(1).拉取HelloWorld的镜像
docker pull hello-world
(2).运行hello-world镜像
docker run hello-world
看到下面的图就证明安装成功了
docker search redis
2.取最新版的 Redis 镜像
docker pull redis:latest
3.查看本地镜像
docker images
4.运行容器(这是只能本地访问,但是我们需要进行外网访问)
docker run -itd --name redis-test -p 6379:6379 redis
-p 6379:6379:映射容器服务的 6379 端口到宿主机的 6379 端口。外部可以直接通过宿主机ip:6379 访问到 Redis 的服务。
5.通过 redis-cli 连接测试使用 redis 服务。
docker exec -it redis-test /bin/bash
6.查看 Redis是否启动成功
ps aux | grep redis-server
出现如下,则为成功
上面的方法只能本地访问,我们需要的是外网访问redis
4.创建conf 和 data 文件夹
mkdir /usr/local/docker/conf
/usr/local/docker/data
然后再conf下创建redis.conf 的配置文件
放入如下内容,密码可不用配置
6.查看Redis是否启动
docker ps
就可以看到redis了,如果状态是UP,那么就可以确定是安装成功了,启动完成之后,把云服务器的6379端口出入打开,就可以看到了。
这时候我们就可以去使用外部工具进行连接了。
1.拉取镜像
docker pull mysql
2.在opt下创建文件夹
cd /opt/
mkdir mysql_docker
cd mysql_docker/
echo $PWD
3.启动mysql容器,在var/lib/docker/containers/下查看容器
cd /var/lib/docker/containers/
4.查看mysql进程
docker ps -a
5.进入mysql容器,并登陆mysql
docker exec -it mysqlserver bash
mysql -uroot -p
123456
6.开启远程访问权限
use mysql;
select host,user from user;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;
然后去连接一下数据库测试就可以了
7.关闭docker中mysql容器
docker stop mysqlserver
8.关闭docker
systemctl stop docker
腾讯轻量云服务器搭建k8s环境
4C4G机器设置为k8smaster节点,另外一台机器设置为k8snode节点
分别进入两台的 /ect/hosts 目录,设置r如下host
由于k8s内部节点之间的通讯使用的是内网ip,我们需要把内网ip的重定向到公网ip上
由于两台机器是处于公网环境,且k8s节点之间需要通讯,所以需要开放一些端口,端口配置可以直接进到腾讯云控制台进行配置
以下是官网要求的master节点的端口配置
可以进入腾讯云服务器的防火墙配置开放相应端口,端口可以限定来源,只允许node节点(192.168.2.2)访问
以下是官网要求的node节点的端口配置
同理,也设置node节点的端口
master节点需要安装
node节点需要安装
添加安装源(所有节点)
安装命令
设置开机启动
修改docker配置(所有节点)
组件安装完成后就可以启动了,首先启动master节点,然后让node节点加入master几点即可。
在master节点使用kubeadm初始化集群
这里需要保存token,token是用于node节点加入maste节点的凭证
node节点加入master节点
安装网络插件,否则node是NotReady状态(主节点跑)
kubectl get nodes
docker究竟是什么,为什么这么流行,它的优点和缺陷有哪些
简单得来说,Docker是一个由GO语言写的程序运行的“容器”(Linux containers, LXCs); 目前云服务的基石是操作系统级别的隔离,在同一台物理服务器上虚拟出多个主机。Docker则实现了一种应用程序级别的隔离; 它改变我们基本的开发、操作单元,由直接操作虚拟主机(VM),转换到操作程序运行的“容器”上来。
Docker是为开发者和系统管理员设计的,用来发布和运行分布式应用程序的一个开放性平台。由两部分组成:
Docker Engine: 一个便携式、轻量级的运行环境和包管理器。(注* 单OS vs 单线程,是不是跟NodeJS特别像?)
Docker Hub: 为创建自动化工作流和分享应用创建的云服务组成。(注* 云端镜像/包管理 vs npm包管理,是不是跟npm特别像?)
从2013年3月20日,第一个版本的Docker正式发布到 2014年6月 Docker 1.0 正式发布,经历了15个月。 虽然发展历程很短,但Docker正在有越来越流行的趋势。
其实Container技术并非Docker的创新,HeroKu, NodeJitsu 等云服务商都采用了类似这种轻量级的虚拟化技术,但Docker是第一个将这这种Container技术大规模开源并被社区广泛接受的。
好的部分
Docker相对于VM虚拟机的优势十分明显,那就是轻量和高性能和便捷性, 以下部分摘自: KVM and Docker LXC Benchmarking with OpenStack
快
运行时的性能可以获取极大提升(经典的案例是提升97%)
管理操作(启动,停止,开始,重启等等) 都是以秒或毫秒为单位的。
敏捷
像虚拟机一样敏捷,而且会更便宜,在bare metal(裸机)上布署像点个按钮一样简单。
灵活
将应用和系统“容器化”,不添加额外的操作系统,
轻量
你会拥有足够的“操作系统”,仅需添加或减小镜像即可。在一台服务器上可以布署100~1000个Containers容器。
便宜
开源的,免费的,低成本的。由现代Linux内核支持并驱动。注* 轻量的Container必定可以在一个物理机上开启更多“容器”,注定比VMs要便宜。
生态系统
正在越来越受欢迎,只需要看一看Google的趋势就知道了, docker or LXC.
还有不计其数的社区和第三方应用。
云支持
不计其数的云服务提供创建和管理Linux容器框架。
有关Docker性能方面的优势,还可参考此IBM工程师对性能提升的评测,从各个方面比VMs(OS系统级别虚拟化)都有非常大的提升。
Performance Characteristics of VMs vs Docker Containers by Boden Russel (IBM)
Performance characteristics of traditional v ms vs docker containers
有争论的部分
任何项目都会有争论,就像Go,像NodeJS, 同样Docker也有一些。
能否彻底隔离
在超复杂的业务系统中,单OS到底能不能实现彻底隔离,一个程序的崩溃/内存溢出/高CPU占用到底会不会影响到其他容器或者整个系统?很多人对Docker能否在实际的多主机的生产环境中支持关键任务系统还有所怀疑。 注* 就像有人质疑Node.JS单线程快而不稳,无法在复杂场景中应用一样。
不过可喜的是,目前Linux内核已经针对Container做了很多改进,以支持更好的隔离。
GO语言还没有完全成熟
Docker由Go语言开发,但GO语言对大多数开发者来说比较陌生,而且还在不断改进,距离成熟还有一段时间。此半git、半包管理的方式让一些人产生不适。
被私有公司控制
Docker是一家叫Dotcloud的私有公司设计的,公司都是以营利为目的,比如你没有办法使用源代码编绎Docker项目,只能使用黑匣子编出的Docker二进制发行包,未来可能不是完全免费的。 目前Docker已经推出面向公司的企业级服务(咨询、支持和培训)。

