202009-28 Docker Swarm实现服务的滚动更新的示例代码 一、什么是DockerSwarm?DockerSwarm是Docker官方提供的一款集群管理工具,其主要作用是把若干台Docker主机抽象为一个整体,并且通过一个入口统一管理这些Docker主机上的各种Docker资源。Swarm和Kubernetes比较类似,但是更加轻,具有的功能也较kubernetes更少一些。DockerSwarm和DockerCompose一样,都是Docker官方容器编排项目,但不同的是,DockerCompose是一个在单个服务器或主机上创建多个容器的工具,而Docker... 继续阅读 >
202009-28 Docker暴露2375端口导致服务器被攻击问题及解决方法 相信了解过dockerremoteAPI的同学对2375端口都不陌生了,2375是docker远程操控的默认端口,通过这个端口可以直接对远程的dockerdaemon进行操作。当$HOST主机以dockerdaemon-H=0.0.0.0:2375方式启动daemon时,可以在外部机器对$HOST的dockerdaemon进行直接操作:docker-Htcp://$HOST:2375ps好,说说如何“入侵”,怎么通过这个端口入侵宿主机呢?这个应该要从几个点说起吧:1.docker对usernamespace没有做隔离,也就是说... 继续阅读 >
202009-27 Docker 安装 Jenkins 并解决初始安装插件失败问题 安装Jenkins后,初始化下载插件总是失败,导致安装不成功,重试好几次都是卡在安装插件那。这里记录下Docker下怎么安装Jenkins,并解决初始安装插件失败问题。安装插件失败,其实是拉取了官方的Jenkins镜像,然后在初始化安装插件时,会从国外的网站去获取,导致安装非常缓慢,或者安装失败。最好的解决方案时拉取Jenkins中文社区提供的Jenkins镜像,即可解决。Jenkins中文官网:https://www.jenkins.io/zh/安装步骤... 继续阅读 >
202009-27 基于Docker镜像部署go项目的方法步骤 依赖知识Go交叉编译基础Docker基础Dockerfile自定义镜像基础docker-compose编排文件编写基础当然,一点也不会也可以按照这个步骤部署完成,不过可能中间如果出点小问题,会不知道怎么解决,当然你也可以留言。我是在mac环境上开发测试的,如果你是在windows上可能有一点出入,但应该不会有啥大问题。一、依赖环境Docker二、编写一个GoLangweb程序我这里就写一个最简单的helloworld程序吧,监听端口是80端口。新建一个m... 继续阅读 >
202009-27 Docker 部署Go的两种基础镜像的实现 一、golang:latest基础镜像mkdirgotesttouchmain.gotouchDockerfile1.实例代码packagemainimport("fmt""log""net/http")funcmain(){http.HandleFunc("/",func(writerhttp.ResponseWriter,request*http.Request){fmt.Fprint(writer,"HelloWorld")})fmt.Println("3000!!")log.Fatal(http.ListenAndServe(":3000",nil))}2.Dockerfile配置#源镜像FROMgolang:latest#设置工作... 继续阅读 >
202009-24 使用Docker+Jenkins自动构建部署 本文介绍了Docker+Jenkins自动构建部署,分享给大家,具体如下:环境阿里云ESC,宿主机服务器安装Docker,在安全规则中确认8080端口开启。客户端mac运行jenkins运行jenkins容器在主机上创建目录,并添加读写权限以便jenkins应用运行时读写文件,如:$mkdir-p/var/jenkins_node$chmod777/var/jenkins_node拉取jenkins镜像:dockerpulljenkins,当前是2.60.3版。并运行:dockerrun-d--namemyjenkins-p8080:8080-p... 继续阅读 >
202009-24 docker运行项目的方法 1、进入存放自己项目war的目录编辑Dockerfile文件vimDockerfile内容如下:romregistry.docker-cn.com/library/tomcatMAINTAINERheiheziheihezi@foxmail.comCOPYmyproject.war/usr/local/tomcat/webapps2、build自己的镜像dockerbuild-tmyproject:latest.不出意外的会显示build镜像的步骤,最后一行为Successfullybuiltb3f6ac3157ae最后的字符串是镜像id的一部分。此时可以运行dockerimages查看自己的镜像信息3、运行... 继续阅读 >
202009-24 如何解决docker容器启动失败 问题:电脑重启之后,docker里面的mysql容器重启不了,不知道是什么原因上面的步骤:如果sudodockerstartname能重新启动,也就是输入:dockerps能看到自己所需要的服务已经开启,那就不需要再进行下面的步骤了,如果刚好像上面那样,那就接着看下文:解决办法:删除启动不了的容器,然后再重新运行镜像。注意此时的容器名已经变为mysql了,为关闭状态,再运行镜像时还是运行不了,但此时再启动镜像时就可以启动了内容补充1、... 继续阅读 >
202009-24 python脚本在docker上运行的方法 首先为docker镜像创建一个特定的项目目录.例如:mkdir/home/pi/Desktop/teasr/capturing将dockerfile和脚本复制到那里并将当前上下文更改为此目录cp/home/pi/Desktop/teasr/capturing.py/home/pi/Desktop/teasr/dockerfile/home/pi/Desktop/teasr/capturing/cd/home/pi/Desktop/teasr/capturing这是最佳实践,因为docker-engine在构建时所做的第一件事是读取整个当前上下文。接下来我们将看看您的dockerfile。现在应该看起来... 继续阅读 >
202009-24 docker容器调用yum报错的解决办法 dockerfile里或者在容器里执行yum,报错,找不到源(invalidbaseurlxxx),但是宿主机上执行yum是没问题的啊,为什么?因为不论是dockerfile使用RUN关键字执行yum还是直接进入到容器里面执行yum,它们都是使用的docker镜像里面的源(CentOS是在路径/etc/yum.repo.d/CentOS-Base.repo),所以你要把宿主机上的同路径下的源拷贝到容器里面,然后dockercommit一个新的“基础镜像”,这个时候使用dockerbuildxxx(即使用Dockerfile的方... 继续阅读 >
202009-24 docker容器无法stop的解决办法 解决方法如下:1、强制删除容器dockerrm-fjenkins2、清理此容器的网络占用dockernetworkdisconnect--forcebridgejenkinsdocker无法stop,kill容器最近在遇到docker无法删除,或者kill相应的容器,要么是运行完dockerstopxxx后发现xxx仍然存在,要么就根本无法删除,或者发现会报错,提示Errorresponsefromdaemon:Conflict,cannotremovethedefaultnameofthecontainer这种情况的可能原因是在过去的某个时刻... 继续阅读 >
202009-24 使用Docker安装Jenkins的示例代码 在docker安装容器的时候容易遇到的两个问题1.portisalreadyallocated(端口被指派了)解决办法:改端口2.thatcontainertobeabletoreusethatname解决办法:查看(删除)之前的容器dockerps-a|grepjenkins_imdockerrmjenkins_im启动docker服务sudosystemctlstartdockervi/home/jenkins/docker-compose.yml,创建docker-compose.ymlversion:'3'services:jenkins:container_name:'jenkins'image:jenk... 继续阅读 >
202009-24 docker /var/lib/docker/aufs/mnt 目录清理方法 公司的服务是用的docker,发现磁盘man了,然后执行下面的命令就搞定了1、创建脚本文件vicleandocker.sh内容如下:#!/bin/shecho"====================startcleandockercontainerslogs=========================="logs=$(find/var/lib/docker/containers/-name*-json.log)forlogin$logsdoecho"cleanlogs:$log"cat/dev/null>$logdoneecho"====================endcleandockercon... 继续阅读 >
202009-24 docker中使用mysql数据库实现局域网访问 1.获取mysql镜像dockerpullmysql:5.6注意:此处之所以获取mysql5.6是因为mysql5.7在centos7中启动可能会报错2.查看镜像列表dockerimages3.启动mysql镜像dockerrun-itd-Pmysql:5.6bash其中dockerrun是启动容器的命令;i是交互式操作,t是一个终端,d指的是在后台运行,-P指在本地生成一个随机端口,用来映射mysql的3306端口,mysql指运行mysql镜像,bash指创建一个交互式shell。4.查看已经运行的docker镜像dockerps-a从... 继续阅读 >
202009-24 把jar包变成docker容器的方法 怎么把jar包变成docker容器1、首先下载java镜像dockerpulljava:82、新建一个工作目录,拷贝jar包进去mkdirmydockercdmydockercopy/xxx/app.jar./3、新建一个Dockerfile文件viDockerfile文件内容如下:FROMjava:8MAINTAINERfreebytes.netWORKDIR/testCOPYapp.jar/test/app.jarCMD["java","-jar","app.jar","-Dfile.encoding=utf-8"]代码解释FROMjava:8——表示基于java:8镜像构建MAINTAINERauthor——表示构建... 继续阅读 >
202009-24 查看docker镜像中文件的方法 怎么查看docker镜像中的文件一、如果是已运行的对于已经运行的镜像,我们可以通过其ContrainerID来查看dockerattachContainerID这种方式,需要对应的container是运行中的,不处于stop状态二、如果未运行对于未运行的,可以把Docker镜像中的文件复制到宿主来看,命令示意如下:dockercp<容器名称>:<路径><主机路径>如:sudodockercpnginx-ubuntu-container:/etc/apt/sources.list~/Documents/这种方式,不需要对应的contai... 继续阅读 >