docker安装以太坊
① 10. Docker 安装与配置
Docker 是一个开源的应用容器引擎,基于LXC(Linux Container)内核虚拟化技术实现,提供一系列更强的功能,比如镜像、 Dockerfile等;Docker理念是将应用及依赖包打包到一个可移植的容器中,可发布到任意Linux发行版Docker引擎上。使用沙箱机制运行高陵罩程序, 程序之间相互隔离;
容器是在linux上本机运行,并与其他容器共享主机的内核,它运行的一个独立的进程,不占用其他任何可执行文戚闹件的内存,非常轻量、高效、快速。
虚拟机运行的是一个完成的操作系统,通过虚拟机管理程序对主机资源进行虚拟访问,相比之下需要的资源更多。
参考: https://www.cnblogs.com/codingbit/p/install-docker-in-ubuntu.html
Linux版本CentOS7
使用加速器可以提升获取Docker官方镜像的速度,下面使用 阿里云镜像 进行加速。
通过修改daemon配置文件 /etc/docker/daemon.json 来使用加速器
Docker 守护进程绑定在 Unix socket 而不是 TCP 端口。默认情况下 Unix socket 归属于 root 用户,其他用户只能通过 sudo 命令访问。所以 Docker 守护进程总是以 root 用户来运行。
如果你不希望每次运行 docker 命令时在前面加上 sudo,你可以创建一个 docker 用户组并把用户加进去。当 Docker 守护进程启动时,会创建一个 Unix socket 供 docker 用户组成员访问
创建 docker 用户组并添加你的用户
https://hub.docker.com/
什么是 DockerHub 以及为什么它很重要?DockerHub 是一个由 Docker 公司运行和管理的基于云的存储库。它是一个在线存储库,Docker 镜像可以由其他用户发布和使用。
有两种库:公共存储库和私有存储库 。如果你是一家公司,你可以在你自己的组织内拥有一个私有存储库,而公共镜像可以被任何人使用。
镜像层和容器层
Docker 服务端是Docker 所有后台服务的统称 。其中dockerd 是一个非常重要的后台管理进程,它负责响应汪伏和处理来自Docker 客户端的请求,然后将客户端的请求转化为Docker 的具体操作。
例如:镜像、容器、网络和挂载卷等具体对象的操作和管理。
Docker 从诞生到现在,服务端经历了多次架构重构。起初,服务端的组件是全部集成在docker 二进制里。但是从 1.11 版本开始, dockerd 已经成了独立的二进制,此时的容器也不是直接由dockerd 来启动了,而是集成了containerd、runC 等多个组件。
虽然 Docker 的架构在不停重构,但是各个模块的基本功能和定位并没有变化。它和一般的 C/S 架构系统一样,Docker 服务端模块负责和 Docker 客户端交互,并管理Docker 的容器、镜像、网络等资源。
Docker 有两个至关重要的组件: runC和containerd。
runC 是Docker 官方按照OCI 容器运行时标准的一个实现。通俗地讲,runC 是一个用来运行容器的轻量级工具,是真正用来运行容器的。
containerd 是Docker 服务端的一个核心组件,它是从dockerd 中剥离出来的 ,它的诞生完全遵循OCI 标准,是容器标准化后的产物。containerd通过containerd-shim 启动并管理runC,可以说containerd真正管理了容器的生命周期。
1. 容器中长期运行 程序
有两种方式:
2. 容器 开启和停止 程序
有两种方式
3. 进入容器
有2种方法
想要web部署在互联网上 或者 在Web上访问 应用;
个人电脑处于 私网 中; IP地址处于 IPV4 和 IPV6 ;
安装appium
排错,困难
https://hub.docker.com/r/appium/appium
测试adb
改变TCPIP连接方式
查看appium运行日志
容器端口号为 4723
开启nginx,就可以在web访问 192.168.0.100;
Dockerfile其实可以看做一个命令集 。每行均为一条命令。每行的第一个单词,就是命令command。后面的字符串是该命令所要接收的参数。比如ENTRYPOINT /bin/bash。ENTRYPOINT命令的作用就是将后面的参数设置为镜像的entrypoint。至于现有命令的含义,这里不再详述。DockOne上有很多的介绍。
FROM 指令用于指定其后构建新镜像所使用的基础镜像。FROM 指令必是 Dockerfile 文件中的首条命令,启动构建流程后,Docker 将会基于该镜像构建新镜像,FROM 后的命令也会基于这个基础镜像。
在镜像的构建过程中执行特定的命令,并生成一个中间镜像。格式:
最多127层,不是写shell ;
② 怎样在阿里云上安装docker
怎样在阿里云上安装docker
更多1
Linux
因为debian 7安装docker的手续比较麻烦,所以我把阿里云的系统换成了ubuntu 14.04,然后参考:https://docs.docker.com/installation/ubuntulinux/
还算比较方便:apt-get update && apt-get install docker.io,然后再改两个配置就完事了。
不过,在你运行docker run -i -t ubuntu /bin/bash的时候,会报错,说是docker -d好象没有运行,这不科学 啊,刚刚不是装好的吗?
于是ps aux|grep docker,果然没有进程,于是直接输入:docker -d,然后就发现报错了:
2014/08/18 12:05:42 Could not find a free IP address range for interface 'docker0'. Please configure its address manually and run 'docker -b docker0'
老规矩,内事不决问度娘,外事不决问谷歌,结果居然看到有人回复 :
当时这个心就碎了,心想这不科学啊,于是再google,就真的发现了:
OK,那就试试吧:
sudo brctl addbr docker0 # create your bridge
sudo brctl addif docker0 eth0 # mask an existing interface using the bridge
sudo ip link set dev docker0 up # bring it up - not really sure if this is necessary or is it done automatically
sudo ifconfig docker0 10.0.0.4 # give it an IP
当然要运行brctl还是要装一个bridge-utils工具的,当然这个ubuntu会提醒你,一步步的做完后,docker 果然可以启动了。这时候再运行一下,service docker.io start,然后ps aux|grep docker,进程还活着。
于是输入:
docker run -i -t ubuntu /bin/bash
Unable to find image 'ubuntu' locally
Pulling repository ubuntu
2014/08/18 12:16:44 Get https://index.docker.io/v1/repositories/ubuntu/images: dial tcp: lookup index.docker.io on 10.143.22.118:53: no answer from server
咦。不能上网。其实就是上面的代码的问题,因为默认aliyun的eth0是内网IP,所以上述的
sudo brctl addif docker0 eth0 # mask an existing interface using the bridge
这里应该用eth1
重新执行一下。然后再次运行:
docker run -i -t ubuntu /bin/bash
Unable to find image 'ubuntu' locally
Pulling repository ubuntu
c5881f11ded9: Download complete
。。。。。。。
整个就完成了
③ docker重装
yum list installed |grep docker #查看已安装的docker
lsb_release -a # 查看系统版本
docker version #查看旧的dockr版本
nvidia-docker version #查看旧的nvidia-docker版本
systemctl stop nvidia-docker #重装前关闭docker
systemctl stop docker
yum remove docker-ce #卸载docker
yum remove docker-ce-cli.x86_64
yum remove containerd.io.x86_64
rm -rf /var/lib/docker #删除镜像汪橡、容器、配置文件等内容
yum remove nvidia-docker.x86_64 #卸载nvidia-docker
docker安装困樱旁步骤
nvidia-docker2官方
注意:因为是centos是redhat内核,所以按照RHEL-based distributions步骤
yum install -y nvidia-docker2 #安装颂樱
systemctl restart docker #重启docker后完成
docker run -tid --gpus all --name container_name -v /home/user:/home image_id
④ ETH blockscout浏览器搭建(docker版本)
想在本地搭建个eth的区块浏览器,用于交易、区块等数据的查询,找了一圈,发现都不太好用,和官方的 https://etherscan.io/ 差别太多,感觉比较low。最终发现了blockscout,很好的ui体验,虽比不上官方的,但是也能满足我的需求了。
http://ip:4000/
⑤ 微服务中的容器技术---Docker(一),Docker的安装和使用
在微服凳磨系统中,因为服务特别多,如果手动部署以及启动、重启等工作会比较繁琐,这里会涉及到自动化部署谨仿,自动化部署就需要用到容器技术,虽然这里基本属于运维范畴,但是开发者还是需要了解一下,以及简单操作使用需要会。
现在比较热门的容器技术当然还是Docker了。关于容器和Docker的名词解释请网络/Google/Bing一下,解释比较详细,这里不过多描述。
显示下图,安装完毕
查看网桥信息
默认的为:172.17.0.0/16,也可以修改上述配置文件docker.service中的ExecStart参数,添加自定义ip段,如:--bip 10.0.0.1/16,这里不作修改保持默认。
显示如下
可以更新一下源的配置来加速
修改完记得重载、重启
如下图所示
※这里出现一个错误,因为服务器中之前安装过lnmp,所以启动docker中的nginx的时候,提示80端口被占用了,这里需要关闭原来的nginx
访问http://192.168.0.241,显示如下
参数说明如下:
参数说明
不同指定映射方法
容器内枣晌斗站点目录: /usr/share/nginx/html,可以测试一下
测试一下
官方镜像列表:
https://hub.docker.com/explore/
启动完成后镜像ssh连接测试
以下为nginx的dockerfile
dockerfile主要组成部分:
dockerfile常用指令:
好了,以上是Docker入门的一些日常操作,后续还有Docker容器操作的拓展内容。
⑥ 上如何安装Docker及基本用法
docker越来越炙手可热,如果你的团队已经准备开始使绝差用docker,那么私有仓库是必不可少的东西,首先是可以帮助你加并衡皮快从服务器pull镜像的速度,其次也可拦漏以帮助你存放私有的镜像,本文主要为大家介绍如何从公用服务器上讲开放的images备份到本地私...
⑦ Docker网络
Docker作为目前最火的轻量级容器技术,有很多令人称道的功能,如Docker的镜像管理。然而,Docker同样有着很多不完善的地方,网络方面就是Docker比较薄弱的部分。因此,我们有必要深入了解Docker的网络知识,以满足更高的网络需求。
安装Docker时,它会自动创建三个网络,bridge(创建容器默认连接到此网络)、 none 、host
首先,要实现网络通信,机器需要至少一个网络接口(物理接口或虚拟接口)来收发数据包;此外,如果不同子网之间要进行通信,需要路由机制。
Docker 中的网络接口默认都是虚拟的接口。虚拟接口的优势之一是转发效率较高。 Linux 通过在内核中进行数据复制来实现虚拟接口之间的数据转发,发送接口的发送缓存中的数据包被直接复制到接收接口的接收缓存中。对于本地系统和容器内系统看来就像是一个正常的以纯培太网卡,只是它不需要真正同外部网络设备通信,速度要快很多。
Docker 容器网络就利用了这项技术。它在本地主机和容器内分别创建一个虚拟接口,并让它们彼此连通(这样的一对接口叫做 veth pair)。
创建网络参数
Docker 创建一个容器的时候,会执行如下操作:
完成这些之后,容器就可以使用 eth0 虚拟网卡来连接其他容器和其他网络。
可以在 docker run 的时候通过 --net 参数来指定容器的网络配置,有4个可选值:
当你安装Docker时,它会自动创建三个网络。你可以使用以下docker network ls命令列出这些网络:
Docker内置这三个网络,运行容器时,你可以使用该–network标志来指定容器应连接到哪些网络。
bridge网络代表docker0所有Docker安装中存在的网络。除非你使用该docker run --network=选项指定,否则Docker守护程序默认将容器连接到此网络。
我们在使用docker run创建Docker容器时,可以用 --net 选项指定容器的网络模式,Docker可以有以下4种网络模式:
Docker 容做卖唯器默认使用 bridge 模式的网络。其特点如下:
Host 模式并没有为容器创建一个隔离的网络环境。而之所以称之为host模式,是因为该模式下的 Docker 容器会和 host 宿主机共享同一个网络 namespace,故 Docker Container可以和宿主机一样,使用宿主机的eth0,实现和外界的通信。换言之,Docker Container的 IP 地址即为宿主机 eth0 的 IP 地址。其特点包括:
Container 网络模式是 Docker 中一种较为特别的网络的模式。处于这个模式下的 Docker 容器会共享其他容器的网络环境,因此,至少这两个容器之间不存在网络隔离,而这两个容器又与宿主机以及除此之外其他的容器存在网络隔离。
网络模式为 none,即不为 Docker 容器构造任何网络环境。一旦Docker 容器采用了none 网络模式,那么容器内部就只能使用loopback网络设备,不会再有其他的网络资源。Docker Container的none网络模式意味着不给该容器创建任何网络环境,容器只能使用127.0.0.1的本机网络。
自定义网络模式,docker提供了三种自定义网络驱动:
bridge驱动类似默认的bridge网络模式,但增加了一些新的功能,overlay和macvlan是用于创建跨主机网络。
建议使用自定义网桥来控制容器之间的相互通讯,配裤还可以自动DNS解析容器名称到ip地址。Docker提供了创建这些网络的默认网络驱动程序,你可以创建一个新的Bridge网络,Overlay或Macvlan网络,你可以创建一个网络插件或远程网络进行完善的自定义和控制。
你可以根据需要创建任意数量的网络,并且可以在任何给定的时间将容器连接到这些网络中的零个或多个网络。此外,您可以连接并断开网络中的容器,而无需重新启动容器,当容器连接到多个网络时,其外部连接通过第一个非内部网络以词法顺序提供。
接下来介绍Docker的内置网络驱动程序。
使用自定义网络启动容器
自定义网络好处:
参考:
https://blog.51cto.com/u_13362895/2130375
https://blog.csdn.net/meltsnow/article/details/94490994
https://blog.csdn.net/weixin_41842682/article/details/90417959
⑧ 【4.4】服务器安装 Docker中安装与配置 Portainer
截止到22年04月01日为止
portainer 官网提供版让兆消本 2.9.3
https://docs.portainer.io/v/ce-2.11/start/install/server/docker/linux
新装的docker如果docker run 任何都失败,记得试试关闭防火墙,然后重启docker试试,猜和 systemctl restart docker
更多方法请参考官方网站教程坦知
https://docs.portainer.io/v/ce-2.11/start/install/server
历史原因portainer 保留了9000的端口,最近的端口是8000.ssl端口9443
进入 9000端口网站需要先设置账户密码
登录后就是这个样子的
点波关注 系统搭建(docker)
⑨ Ubuntu Docker 安装和使用
Docker 划分为CE 和EE。CE 即社区版(免费,支持周期三个月),EE 即企业版,强调安全,付费使用。
在Ubuntu系统中安装较为简单,官方提供了脚本供我们进行安装。
执行这个命令后,脚本就会自动的将一切准备工作做好,并且把Docker CE 的Edge版本安装在系统中。
启动Docker CE
建立docker 用户组
默认情况下,docker 命令会使用Unix socket 与Docker 引擎通讯。而只有root 用户和docker 组的用户才可以访问Docker 引擎的Unix socket。出于安全考虑,一般Ubuntu系统上不会直接使用root 用户。因此,更好地做法是将需要使用docker 的用户加入docker用户组。
注销当前用户,重新登录Ubuntu,输入迟岁核docker info,此时可以直接出现信息。
配置国内镜像加速
在/etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)
重新启动服务
测试
我们通过 docker 的两个参数 -i -t,让 docker 运行的容器实现"对话"的能力:
各个参数解析:
-t: 在新容器内指雀拆定一个伪终端或终端。码掘
-i: 允许你对容器内的标准输入 (STDIN) 进行交互。
我们可以通过运行 exit 命令或者使用 CTRL+D 来退出容器。
使用以下命令创建一个以进程方式运行的容器
二、使用Docker安装 MySQL
用 docker search mysql 命令来查看可用版本:
2、拉取 MySQL 镜像
这里我们拉取官方的最新版本的镜像:
3、查看本地镜像
使用以下命令来查看是否已安装了 mysql:
4、运行容器
安装完成后,我们可以使用以下命令来运行 mysql 容器:
大小写敏感
参数说明:
-p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。
MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码。
使用docker exec进入Docker容器
从容器里面拷文件到宿主机
docker cp mysql-5.7:/etc/mysql/ /home
从宿主机拷文件到容器里面
docker cp /home/s/my.cnf mysql-5.7:/etc/mysql/
大小写敏感修改
/etc/my.cnf 中的[mysqld]后添加添加lower_case_table_names=1,重启MYSQL服务 0敏感 1不敏感
开启远程连接
5、安装成功
通过 docker ps 命令查看是否安装成功:
6、连接
mysql -u root -P3308 -h 127.0.0.1 -p
⑩ centos下docker方式安装onlyoffice
环境:
Server:CentOS7
IP:172.16.5.200
WebServer:nginx
如果端口无法访问,关闭服务器防火墙
访问 http://172.16.5.200:9993/welcome/ (上述端口镇亮映射到9993)
创建index.html,保存到服务器/home路径下,并添加test.docx到/home/office
其中的api.js脚本地址为onlyoffice文档服务器地址,文档路径为CentOS中word文件地址(配合nginx)。
nginx配置御山宽唯喊如下:
访问 http://172.16.5.200:9990/