Docker 系列(一):Docker 概念 | 安装 | 基本使用

 Docker是世界领先的软件容器平台,所以想要搞懂Docker的概念我们必须先从容器开始说起。 先来看看容器较为官方的解释一句话概括容器:容器就是将软件打包成标准化单元,以用于开发、交付和部署。容器镜像是轻量的、可执行的独立软件包,包含软件运行所需的所有内容:代码、运行时环境、系统工具、系统库和设置。容器化软件适用于基于Linux和Windows的应用,在任何环境中都能够始终如一地运行。容器赋予了软件独立性 ,使其免受外在环境差异(例如,开发和预演环境的差异)的影响,从而有助于减少团队间在相同基础设施上运行不同软件时的冲突。如果需要通俗的描述容器的话,我觉得容器就是一个存放东西的地方,就像书包可以装各种文具、衣柜可以放各种衣服、鞋架可以放各种鞋子一样。我们现在所说的容器存放的东西可能更偏向于应用比如网站、程序甚至是系统环境。    2.1什么是Docker?说实话关于Docker是什么并太好说,下面我通过四点向你说明Docker到底是个什么东西。Docker是世界领先的软件容器平台。Docker使用Google公司推出的Go...

linux 安装docker(一)

1、安装环境此处在Centos7进行安装,可以使用以下命令查看CentOS版本lsb_release-a在 CentOS7安装docker要求系统为64位、系统内核版本为3.10以上,可以使用以下命令查看uname-r2、用yum源安装2.1查看是否已安装docker列表yumlistinstalled|grepdocker2.2安装dockeryum-yinstalldocker-y表示不询问安装,直到安装成功,安装完后再次查看安装列表2.3启动dockersystemctlstartdocker2.4查看docker服务状态systemctlstatusdocker以上说明docker安装成功3、离线安装模式3.1安装包官方地址:https://download.docker.com/linux/static/stable/x86_64/可以先下载到本地,然后通过ftp工具上传到服务器上,或者在服务器上使用命令下载wgethttps://download.docker.com/linux/static/stable/x86_64/docker-18.06.3-ce.tgz...
代码星球 代码星球·2021-02-14

Docker-compose部署MySQL

  目录结构/Mysql          #Mysql应用文件夹docker-compose.yml#dockercompose脚本文件 init.sql#mysql初始sql文件 /conf           #配置文件夹   my.cnf        #配置文件          /db            #数据库文件docker-compose.ymlversion:'3'services:mysql:network_mode:"bridge"environment:MYSQL_ROOT_PASSWORD:"yourpassword"MYSQL_USER:'test'MYSQL_PASS:'yourpassword'image:"mysql:5.5"restart:alwaysvolumes:-"./db:/var/lib/mysql"-"./conf/my.cnf:/etc/my.cnf"-"./init:/docker-entrypoint-initdb.d/"ports:-"3306:3306"my.cnf[mysqld]user=mysqld...
代码星球 代码星球·2021-02-14

Docker-compose部署Python应用

 目录结构/app#python应用文件夹api.py#API入口脚本文件/docker#docker文件夹docker-compose.yml#dockercompose脚本文件requirements.txt#python第三方依赖run.sh#容器启动执行脚本文件api.pyfromflaskimportFlask,request#创建一个服务,赋值给APPapp=Flask(__name__)#指定接口访问的路径,支持什么请求方式get,post@app.route('/HelloWorld',methods=['post','get'])#请求后直接拼接入参方式defget_ss():#使用request.args.get方式获取拼接的入参数据name=request.args.get('name')#输出结果return'HelloWorld!'+nameapp.run(host='0.0.0.0',port=8880,debug=True)#这个host:windows就一个网卡,可以不写,而liux有多个网卡,写成'0.0.0.0'可以接受任意网卡信息dock...

Docker运行jenkins

 快速运行1、查找镜像官方推荐使用的镜像是jenkinsci/blueocean,该镜像包含当前的长期支持(LTS)的Jenkins版本(可以生产使用),并捆绑了所有BlueOcean插件和功能。2、拉取镜像dockerpulljenkinsci/blueocean3、创建挂载数据卷cd/homemkdirjenkins-data4、运行jenkins容器dockerrun--namemyjenkins-d-p8080:8080-p50000:50000-v/home/jenkins-data:/var/jenkins_home-v/var/run/docker.sock:/var/run/docker.sock-v/etc/localtime:/etc/localtime jenkinsci/blueocean-d后台运行镜像-p8080:8080将镜像的8080端口映射到服务器的8080端口,8080端口用来公开访问Web界面。-p50000:50000将镜像的50000端口映射到服务器的50000端口,50000端口允许访问远程Java(JIRA)API。-v...
代码星球 代码星球·2021-02-14

使用Docker运行locust

 Docker官方Docker映像当前位于locustio/locust中。可以像这样使用docker映像(假设locustfile.py当前工作目录中存在该映像):dockerrun-p8089:8089-v$PWD:/mnt/locustlocustio/locust-f/mnt/locust/locustfile.pyDocker Compose这是一个示例DockerCompose文件,可用于启动主节点和工作节点:version:'3'services:master:image:locustio/locustports:-"8089:8089"volumes:-./:/mnt/locustcommand:-f/mnt/locust/locustfile.py--master-Hhttp://master:8089worker:image:locustio/locustvolumes:-./:/mnt/locustcommand:-f/mnt/locust/locustfile.py--worker--master-hostmaster上面的配置可使用以下命令...
代码星球 代码星球·2021-02-14

Docker:清理Docker占用的磁盘空间

dockercontainerprune:仅删除停止运行的容器。dockerrm-f$(dockerps-aq):删除所有容器(包括停止的、正在运行的)。dockercontainerrm-f$(dockercontainerls-aq):同上。dockerrmi<imageid>:通过镜像的id来删除指定镜像。有一些镜像是隐形的:子镜像,就是被其他镜像引用的中间镜像,不能被删除。悬挂状态的镜像,就是不会再被使用的镜像,可以被删除。其他命令:dockerimagels-fdangling=true:可以列出所有悬挂状态的镜像并使用命令dockerimagerm$(dockerimagels-fdangling=true-q)或dockerimageprune进行删除。dockerimagerm$(dockerimagels-q):删除所有镜像。但正在被容器使用的镜像无法删除。dockervolumerm$(dockervolumels-q):删除不再使用的数据卷。dockervolumeprune:同上。Docker18.09引入了BuildKit,提升了构建过程的性能、安...

Docker:Fluentd收集容器日志

 快速启动Fluentd1、创建日志文件和配置文件mkdir /home/fluentd/container-logs  /home/fluentd/conf/2、编写配置文件vi/home/fluentd/conf/fluent.conf<source>@typeforward</source><match*>@typefilepath/fluentd/log/${tag}/${tag}appendtrue<format>@typesingle_valuemessage_keylog</format><buffertag,time>@typefiletimekey1dtimekey_wait10mflush_modeintervalflush_interval30s</buffer></match>3、启动Fluentd#dockerrun-d-p24224:24224-v/home/fluentd/container-logs:/fluentd/l...

Docker容器网络互联

  虚拟IP首先思考被隔离的容器进程,该如何跟其他NetworkNamespace里的容器进程进行通信?Docker项目会默认在宿主机上创建一个名叫docker0的网桥,凡是连接在docker0网桥上的容器,就可以通过它来进行通信。我们又该如何把这些容器“连接”到docker0网桥上呢?这时候,我们就需要使用一种名叫VethPair的虚拟设备了。VethPair设备的特点是:它被创建出来后,总是以两张虚拟网卡(VethPeer)的形式成对出现的。并且,从其中一个“网卡”发出的数据包,可以直接出现在与它对应的另一张“网卡”上,哪怕这两个“网卡”在不同的NetworkNamespace里。每一个运行的容器的VethPair设备的一端会在宿主机上。你可以通过查看宿主机的网络设备看到它。创建的容器里也会有一张叫作eth0的网卡,它正是一个VethPair设备在容器里的这一端。假设现在创建两个容器,他们的虚拟ip为172.17.0.2、172.17.0.3,宿主机的ip为10.168.0.2那么构建的网络模型如图所示:   在此基础上,容器之间的...
代码星球 代码星球·2021-02-14

Docker部署nGrinder性能测试平台

 nGrinder是用于压力测试的平台,使您可以同时执行脚本创建,测试执行,监视和结果报告生成器。开源nGrinder通过消除不便并提供集成环境,提供了进行压力测试的简便方法。它是根据Apache许可版本2.0许可的,是基于Grinder的开源的web性能测试平台,由韩国最大互联网公司NHN公司的开发团队进行了重新设计和完善。/http://naver.github.io/ngrinder/nGrinder由三个组件组成。controller:一个Web应用程序,使性能测试人员可以创建测试脚本并配置测试相关参数,自动分发测试脚本到agent。agent:在代理服务器上加载运行测试进程和线程,建议不要部署在被测试的服务器上。Monitor:用于监控被测服务器的系统性能(例如:CPU/MEMORY),必须部署在被测试服务器上。nGrinder架构 工作原理由一个控制端controller和多个代理端agent组成,通过控制端(浏览器访问)建立测试场景,然后分发到代理端进行压力测试。用户按照一定规范编写测试脚本,controller会将脚本以及需要的资源分发到agent,...

使用docker搭建selenium分布式环境

 1、下载镜像dockerpullselenium/hubdockerpullselenium/node-firefoxdockerpullselenium/node-chrome注意:selenium/node-firefox和selenium/node-chrome都是无界面的。要想能看到实时运行界面,需要使用以下两个镜像之一。dockerpullselenium/standalone-chrome-debugdockerpullselenium/standalone-firefox-debug2、启动Hub节点的Dockerdockerrun-p4444:4444-d--namehubselenium/hub参数说明:run:运行一个镜像,创建出一个容器。-p4444:4444:映射容器里端口。-d:后台运行--name:容器名称,这里我就直接把这个容器成为hub3、启动Node节点的Dockerdockerrun-P-d--linkhub:hub--namefirefoxselenium/node-firefoxdockerrun-P-d--linkhub:hub--...

Docker实践:部署内网穿透frp

  1.创建配置文件目录cd/home目录mkdirfrp最后的目录结构:2.创建服务端配置文件vifrps.ini[common]bind_port=17000token=myTokenvhost_http_port=10080vhost_https_port=10443dashboard_port=17500dashboard_user=admindashboard_pwd=admintcp_mux=truemax_pool_count=103.创建服务端yml文件vifrps-docker-compose.ymlversion:'3'services:frps:image:snowdreamtech/frpsports:-"17000:17000"-"27500:17500"-"10022:10022"#用于ssh连接-"10080:10080"#用于开放给外网访问#更多端口根据实际需求增加volumes:-./frps.ini:/etc/frp/frps.inicontainer_name:frps4.启动服务端docker-compose-ffrps-do...

Docker实践部署漏洞扫描 AWVS + Nessus

转自:https://blog.lfoder.cn/2020/06/04/漏洞扫描-AWVS-Nessus-Docker版/Docker源长期及时更新,感谢雷石安全实验室。在docker仓库已经打包好2个扫描器,分别是awvs13和nessus,供广大兄弟们使用。 docker命令 #拉取镜像dockerpullleishianquan/awvs-nessus:v2#启动dockerrun--nameawvs-nessus-it-d-p13443:3443-p8834:8834leishianquan/awvs-nessus:v2#查看容器dockerps–a#启动容器dockerstartcontainer-id#进入容器dockerexec–itcontainer-id/bin/bash#进入容器后,启动nessus/etc/init.d/nessusdstart#访问扫描器地址和账号密码Nessus:https://127.0.0.1:8834/#/account:leishi/leishianquanAwvs13:https://127.0.0.1:1344...

Docker 实用的使用技巧

 1.dockertop这个命令是用来查看一个容器里面的进程信息的,比如你想查看一个nginx容器里面有几个nginx进程的时候,就可以这么做:dockertop3b307a09d20dUIDPIDPPIDCSTIMETTYTIMECMDroot8057870Jul13?00:00:00nginx:masterprocessnginx-gdaemonoff;systemd+9418050Jul13?00:03:18nginx:workerprocess2.dockerload&&dockersave我一般使用这两个命令去下载打包Kubernetes的镜像,因为你知道的国内的网速并不像国外那么快。dockersave可以把一个镜像保存到tar文件中,你可以这么做:~dockersaveregistry:2.7.1>registry-2.7.1.tar#同时dockerload可以把镜像从tar文件导入到docker中~dockerload<registry-2.7.1.tar3.dockersearch这个命令可以帮助你在命令行中方便的搜索Docke...
代码星球 代码星球·2021-02-14

Docker 部署Consul

执行命令dockerrun-d--nameconsul-p8500:8500consul端口说明https://www.consul.io/docs/install/ports.html挂载说明/consul/data:持久化数据存储/consul/config:配置文件Consul配置https://www.consul.io/docs/agent/options.html注意:浏览器打开 http://公网ip:8500 集群部署启动4个ConsulAgent,3个Server(会选举出一个leader),1个Client#启动第1个Server节点,集群要求要有3个Server,将容器8500端口映射到主机8900端口,同时开启管理界面dockerrun-d--name=consul1-p8900:8500-eCONSUL_BIND_INTERFACE=eth0consulagent--server=true--bootstrap-expect=3--client=0.0.0.0-ui#启动第2个Server节点,并加入集群dockerrun-d--name=...
代码星球 代码星球·2021-02-14
首页上一页...23456...下一页尾页