docker2375挖矿
Ⅰ 什么是K8S
k8s全称kubernetes,这个名字大家应该都不陌生,k8s是为容器服务而生的一个可移植容器的编排管理工具,越来越多的公司正在拥抱k8s,并且当前k8s已经主导了云业务流程,推动了微服务架构等热门技术的普及和落地,正在如火如荼的发展。想要了解更多,我推荐你去看看时速云,他们是一家全栈云原生技术服务提供商,提供云原生应用及数据平台产品,其中涵盖容器云PaaS、DevOps、微服务治理、服务网格、API网关等。大家可以去体验一下。
希望能给您提供帮助,可以给个大大的赞不。
Ⅱ 如何配置一个 Docker Swarm 原生集群
1. 运行Swarm的先决条件
我们必须在所有节点安装Docker 1.4.0或更高版本。虽然各个节点的IP地址不需要要公共地址,但是Swarm管理器必须可以通过网络访问各个节点。
注意:Swarm当前还处于beta版本,因此功能特性等还有可能发生改变,我们不推荐你在生产环境中使用。
2. 创建Swarm集群
现在,我们将通过运行下面的命令来创建Swarm集群。各个节点都将运行一个swarm节点代理,该代理会注册、监控相关的Docker守护进程,并更新发现后端获取的节点状态。下面的命令会返回一个唯一的集群ID标记,在启动节点上的Swarm代理时会用到它。
在集群管理器上运行:
# docker run swarm create
Creating Swarm Cluster
Creating Swarm Cluster
3. 启动各个节点上的Docker守护进程
我们需要登录进我们将用来创建集群的每个节点,并在其上使用-H标记启动Docker守护进程。它会保证Swarm管理器能够通过TCP访问到各个节点上的Docker远程API。要启动Docker守护进程,我们需要在各个节点内部运行以下命令。
# docker -H tcp://0.0.0.0:2375 -d
Starting Docker Daemon
Starting Docker Daemon
4. 添加节点
在启用Docker守护进程后,我们需要添加Swarm节点到发现服务,我们必须确保节点IP可从Swarm管理器访问到。要完成该操作,我们需要在各个节点上运行以下命令。
# docker run -d swarm join --addr=<node_ip>:2375 token://<cluster_id>
Adding Nodes to Cluster
Adding Nodes to Cluster
注意:我们需要用步骤2中获取到的节点IP地址和集群ID替换这里的<node_ip>和<cluster_id>。
5. 开启Swarm管理器
现在,由于我们已经获得了连接到集群的节点,我们将启动swarm管理器。我们需要在集群管理器中运行以下命令。
# docker run -d -p <swarm_port>:2375 swarm manage token://<cluster_id>
Starting Swarm Manager
Starting Swarm Manager
6. 检查配置
一旦管理运行起来后,我们可以通过运行以下命令来检查配置。
# docker -H tcp://<manager_ip:manager_port> info
Accessing Swarm Clusters
Accessing Swarm Clusters
注意:我们需要替换<manager_ip:manager_port>为运行swarm管理器的主机的IP地址和端口。
7. 使用docker CLI来访问节点
在一切都像上面说得那样完美地完成后,这一部分是Docker Swarm最为重要的部分。我们可以使用Docker CLI来访问节点,并在节点上运行容器。
# docker -H tcp://<manager_ip:manager_port> info
# docker -H tcp://<manager_ip:manager_port> run ...
8. 监听集群中的节点
我们可以使用swarm list命令来获取所有运行中节点的列表。
# docker run --rm swarm list token://<cluster_id>
Ⅲ 如何从零开始搭建Docker Swarm集群
检查节点Docker配置
1. 打开Docker配置文件(示例是centos 7)
vim /etc/sysconfig/docker
2. 添加-H tcp://0.0.0.0:2375到OPTIONS
OPTIONS='-g /cutome-path/docker -H tcp://0.0.0.0:2375'
3. CentOS6.6 需要另外添加-H unix:///var/run/docker.sock
OPTIONS='-g /mnt/docker -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock'
分别给A、B节点安装swarm
$ docker pull swarm
生成集群token(一次)
$ docker run --rm swarm create
其中就是我们将要创建集群的token
添加节点A、B到集群
$ docker run -d swarm join --addr=192.168.20.1:2375 token://
$ docker run -d swarm join --addr=192.168.20.2:2375 token://
列出集群A、B节点
$ docker run --rm swarm list token://
192.168.20.1:2375
192.168.20.2:2375
集群管理:
在任何一台主机A、B或者C(C:192.168.20.3)上开启管理程序。例如在C主机开启:
$ docker run -d -p 8888:2375 swarm manage token://
现在你就可以在主机C上管理集群A、B:
$ docker -H 192.168.20.3:8888 info
$ docker -H 192.168.20.3:8888 ps
$ docker -H 192.168.20.3:8888 logs ...
在集群上运行容器
$ docker -H 192.168.20.3:8888 run -d --name web1 nginx
$ docker -H 192.168.20.3:8888 run -d --name web2 nginx
$ docker -H 192.168.20.3:8888 run -d --name web3 nginx
$ docker -H 192.168.20.3:8888 run -d --name web4 nginx
$ docker -H 192.168.20.3:8888 run -d --name web5 nginx
查看集群A、B内的容器
$ docker -H 192.168.20.3:8888 ps -a
Ⅳ 如何在mac上搭建docker环境进行漏洞
如何在mac上搭建docker环境进行漏洞,解答如下
下载最近版的Docker for OS X Installer。
运行安装程序, 安装VirtualBox和Boot2Docker管理工具。
运行应用程序文件夹下的Boot2Docker应用:
或者手动初始化Boot2Docker,打开终端并运行:
$ boot2docker init
$ boot2docker start
$ export DOCKER_HOST=tcp://$(boot2docker ip 2>/dev/null):2375
一旦初始化化好了一个虚拟机,就能用boot2docker stop和boot2docker start来进行控制。
Ⅳ 如何给docker设置http代理
解决方案一:
停止docker服务,手动以使用2375端口监听所有网络接口的方式启动docker daemon。
$ systemctl stop docker.service
$ nohup docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock &
解决方案二:
编辑配置文件,Ubuntu下是/etc/default/docker,CentOS下是/etc/sysconfig/docker。不过通过修改这两个文件来配置daemon已经是discouraged的了。不鼓励使用这种方法。HTTP_PROXY="http://[proxy-addr]:[proxy-port]/"
HTTPS_PROXY="https://[proxy-addr]:[proxy-port]/"
export HTTP_PROXY HTTPS_PROXY
解决方案三:
该方法是持久化的,修改后会一直生效。该方法覆盖了默认的docker.service文件。
1. 为docker服务创建一个内嵌的systemd目录
$ mkdir -p /etc/systemd/system/docker.service.d
2. 创建/etc/systemd/system/docker.service.d/http-proxy.conf文件,并添加HTTP_PROXY环境变量。其中[proxy-addr]和[proxy-port]分别改成实际情况的代理地址和端口:
[Service]
Environment="HTTP_PROXY=http://[proxy-addr]:[proxy-port]/" "HTTPS_PROXY=https://[proxy-addr]:[proxy-port]/"
3. 如果还有内部的不需要使用代理来访问的Docker registries,那么嗨需要制定NO_PROXY环境变量:
[Service]
Environment="HTTP_PROXY=http://[proxy-addr]:[proxy-port]/" "HTTPS_PROXY=https://[proxy-addr]:[proxy-port]/" "NO_PROXY=localhost,127.0.0.1,docker-registry.somecorporation.com"
4. 更新配置:
$ systemctl daemon-reload
5. 重启Docker服务:
$ systemctl restart docker
Ⅵ ubuntu16怎么安装docker
1.docker支持以下Ubuntu操作系统:
Ubuntu Xenial 16.04[LTS]Ubuntu Trusty 14.04[LTS]Ubuntu Precise 12.04[LTS]
2.前置需求
不管你是Ubuntu的哪个版本,Docker需要64的操作系统。此外你的kernel内核至少要在3.10版本之上。最近的3.10小版本或者最新的维护版本也是可以接受的。kernel3.10版本之前的系统缺少一些特性来运行docker容器。这些旧版本有些已知的bugs会导致数据丢失并且在一定条件下会频繁的故障。检查你当前的kernel版本,打开终端,输入
uname -r
注意:如果你之前使用APT安装过docker,为了新版本的docker仓库,确保你更新了APT源。
3.更新你的apt源
Docker的APT仓库包含1.7.1以及更高的版本。通过设置APT使用来自docker仓库的包。
1)登陆机器,用户必须使用sudo或者root权限。
2)打开终端
3)更新包信息,确保APT能使用https方式工作,并且CA证书已安装了
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates
出现这个问题可能是有另一个程序正在运行,导致资源被锁不可用。而导致资源被锁的原因可能是上次运行安装或更新没有正常完成,解决办法就是删掉。
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
4)添加一个新的GPG密钥
sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys
5)找到合适你的Ubuntu操作系统的键,这个键决定APT将搜索哪个包。可能的键有:
Ubuntu versionRepository
Precise 12.04 deb https://apt.dockerproject.org/repoubuntu-precise main
Trusty 14.04 deb https://apt.dockerproject.org/repoubuntu-trusty main
Xenial 16.04 deb https://apt.dockerproject.org/repoubuntu-xenial main
注意:docker没有为所有的架构提供包,Binary artifacts are built nightly,你可以从https://master.dockerproject.org. 处下载下来。在一个多架构的系统上安装docker,为键添加一个[arch=]条款。更多细节参考Debian Multiarch维基网络。
6)运行下面的命令,用占位符<REPO> 为你的操作系统替换键。
echo "<REPO>" | sudo tee /etc/apt/sources.list.d/docker.list
比如你是16.04将上面命令的<REPO>
替换成deb https://apt.dockerproject.org/repoubuntu-xenial main 执行那条命令,就在那个文件夹下创建了一个docker.list文件,里面的内容就是
deb https://apt.dockerproject.org/repoubuntu-xenial main
7)更新APT包索引
sudo apt-get update
8)校验APT是从一个正确的仓库拉取安装包。
当运行下面命令的时候,这个键会返回你目前可以安装的docker版本,每个键都包括URL:https://apt.dockerproject.org/repo/。下面是截取的部分输出内容。
命令:apt-cache policy docker-engine
现在当你运行apt-get upgrade的时候,APT就会从新的仓库拉安装包。
4.某些Ubuntu版本需要的前置操作
Ubuntu Xenial 16.04[LTS]Ubuntu Trusty 14.04[LTS]
这两个版本记得安装linux-iamge-extra-*的kernel包。这个包允许你使用aufs存储驱动。
sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual
Ubuntu Precise 12.04[LTS]
对于这个版本,你需要3.13以上的kernel版本,你必须升级。下面表格指导你需要哪些包:
你可以执行以下命令:
sudo apt-get install linux-image-generic-lts-trusty
sudo reboot
5.安装
1)登陆系统,用你的账号使用sudo全权限
2)更新APT包索引:sudo apt-get update
3)安装docker:sudo apt-get install docker-engine
4)开启docker后天进程:sudo service docker start
5)校验docker是否安装成功:sudo docker run hello-world
这个命令会下载一个测试镜像,并且运行在一个容器中。当容器运行时,他会打印一些信息,并且退出。
6.可选配置
6.1 创建一个docker组
docker后台进程是绑定的Unix的socket而不是TCP端口。默认情况下,Unix的socket属于用户root,其它用户要使用要通过sudo命令。由于这个原因,docker daemon通常使用root用户运行。
为了避免使用sudo当你使用docker命令的时候,创建一个Unix组名为docker并且添加用户。当docker daemon启动,它会分配Unix socket读写权限给所属的docker组。
注意:docker组不等价于用户root,如果想要知道的更多关于安全影响,查看docker daemon attack surface。
sudo groupadd docker
sudo usermod -aG docker $USER
退出再重进,确保该用户有正确的权限。
校验生效,通过运行docker命令不带sudo:docker run hello-world,如果失败会有以下类似的信息:Cannot connect to the Docker daemon. Is 'docker daemon' running on this host?确保DOCKER_HOST环境变量没有设置。如果有取消它。
6.2 调整内存和交换区计算
当用户运行docker时,他们可能在使用一个镜像时看见下面的信息:
WARNING: Your kernel does not support cgroup swap limit. WARNING: Your kernel does not support swap limit capabilities. Limitation discarded.
为了阻止这些信息,在你的系统中启用内存和交换区计算。这个操作会导致即便docker没有使用也有内存开销以及性能下降。内存开销大概是总内存的1%。性能降低了大约10%。
修改/etc/default/grub文件。vi或者vim命令都行,设置GRUB_CMDLINE_LINUX的值,如下:GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"。保存文件并关闭。sudo update-grub更新启动项。reboot重启你的系统。
6.3启动UFW转发
当你运行docker时,在同一台主机上使用UFW(Uncomplicated Firewall) ,你需要额外的配置。docker使用桥接方式来管理容器的网络。默认情况下,UFW废弃所有的转发流量。因此,docker运行时UFW可以使用,你必须设置合适UFW的转发规则。
UFW默认配置规则拒绝了所有传入流量。如果你想要从另一个主机到达你的容器需要允许连接docker的端口。docker的默认端口是2376如果TLS启用,如果没有启动则是2375,会话是不加密的。默认情况,docker运行在没有TLS启动的情况下。
为了配置UFW并且允许进入的连接docker端口:
检查UFW是否安装并启用:sudo ufw status
打开/etc/default/ufw文件并编辑:sudo nano /etc/default/ufw
设置DEFAULT_FORWARD_POLICY:DEFAULT_FORWARD_POLICY="ACCEPT"
保存退出并重启使用新的设置:sudo ufw reload
允许所有的连接到docker端口:sudo ufw allow 2375/tcp
6.4 为使用docker配置DNS服务器
系统运行桌面的Ubuntu或者Ubuntu衍生产品通常使用127.0.0.1作为默认的nameserver文件/etc/resolv.conf文件中。NetworkManager也通常设置dnsmasq nameserver 127.0.0.1在/etc/resolv.conf。
当在桌面机器运行容器,使用这些配置时,docker的使用者会看见这些警告:
WARNING: Local (127.0.0.1) DNS resolver found in resolv.conf and containers can't use it. Using default external servers : [8.8.8.8 8.8.4.4]
这个警告发生是因为docker容器不能使用本地DNS命名服务器。此外docker默认使用一个额外的nameserver。
为了避免这个警告,你可以在使用docker容器的时候指定一个DNS服务器。或者你可以禁用dnsmasq在NetworkManager中。但是,禁用会导致DNS协议在某些网络中变慢。
下面的说明描述了如何在Ubuntu14.0或以下版本配置docker守护进程。Ubuntu15.04及之上的使用systemd用于启动项和服务管理。指导通过使用systemd来配置和控制一个守护进程。
设置指定的DNS服务:
打开/etc/default/docker文件并编辑:sudo nano /etc/default/docker,添加配置项:DOCKER_OPTS="--dns 8.8.8.8"。将8.8.8.8用一个本地的DNS服务例如192.168.1.1替换。你也可以配置多个DNS服务器。用空格隔开它们,如:--dns 8.8.8.8 --dns 192.168.1.1。警告:当你在笔记本连接了不同网络的情况时做这些操作,确保选择一个公用的DNS服务器。保存文件并退出,重启docker守护进程:sudo service docker restart。
或者另一个选择,禁用dnsmasq在网络管理器中,这可能导致你的网速变慢:
打开/etc/NetworkManager/NetworkManager.conf文件,编辑它:sudo nano /etc/NetworkManager/NetworkManager.conf。找到行dns=dnsmasq,注释掉。保存关闭文件,重启网络管理器和docker.sudo restart network-manager sudo restart docker。
6.5 配置docker引导启动
Ubuntu15.04之后使用systemd作为引导启动和服务管理,14.10及以下版本是upstart。15.04以上,需要配置docker守护进程boot启动,运行命令:sudo systemctl enable docker
14.10及以下版本安装方法会自动配置upstart来启动docke daemon在boot。
7 升级卸载docker
升级:sudo apt-get upgrade docker-engine
卸载:sudo apt-get purge docker-engine
卸载及依赖:sudo apt-get autoremove --purge docker-engine
上述命令不会卸载images,containers,volumes或者用户自己创建的配置文件。你如果想删除这些东西,执行下面的命令:
rm -rf /var/lib/docker
安装最简单的方法是:sudo apt-get update sudo apt-get install docker
Ⅶ 怎么在docker里面安装软件
下载最近版的docker
for
os
x
installer。
运行安装程序,
安装virtualbox和boot2docker管理工具。
运行应用程序文件夹下的boot2docker应用:
或者手动初始化boot2docker,打开终端并运行:
?
1
2
3
$
boot2docker
init
$
boot2docker
start
$
export
docker_host=tcp://$(boot2docker
ip
2>/dev/null):2375
一旦你初始化化好了一个虚拟机,你就能用boot2docker
stop和boot2docker
start来进行控制。
chasehong
翻译于
1年前
0人顶
顶
翻译的不错哦!
更新
下载最新版的docker
for
os
x
installer
运行安装程序,
更新virtualbox和boot2docker管理工具。
更新现有虚拟机,打开终端并运行:
?
1
2
3
$
boot2docker
stop
$
boot2docker
download
$
boot2docker
start
运行docker
在终端上跑一个“hello
world”
的示例来测试docker。启动虚拟机然后运行:
?
1
$
docker
run
ubuntu
echo
hello
world
这样应该会下载ubuntu镜像并打印hello
world。
容器端口跳转
最新版的boot2docker建立了一个仅有网络适配器的主机提供可以接入容器的端口。
如果你运行一个有公开端口的容器,
?
1
$
docker
run
--rm
-i
-t
-p
80:80
nginx
然后你应该能用ip地址接入nginx服务器:
?
1
$
boot2docker
ip
通常,这个ip地址为192.168.59.103,但是也可能被virtualbox启用的dhcp修改。
Ⅷ 如何让 docker 监听 2375 端口
命令没问题,检查下你的nginx,然后用docker ps看看具体端口映射情况,然后还可以通过exec 进容器,在内部curl localhost看看