
Docker
冰川_
这个作者很懒,什么都没留下…
展开
-
K8S同步容器跟外部物理机时间
volumeMounts: - name: host-time mountPath: /etc/localtime readOnly: true volumes: - name: host-time hostPath: path: /etc/localtime原创 2021-04-08 08:56:36 · 622 阅读 · 0 评论 -
Dockerfile部署mysql并初始化
文件目录结构DockerfileFROM centos:7ADD jdk-8u261-linux-x64.tar.gz /usr/localADD check-mysql.sh /home/datasong/release/binADD mysql-5.1.72-linux-x86_64-glibc23.tar.gz /home/datasong/release/resource/mysqlADD datasong.sql /home/datasong/release/resource/m原创 2021-01-08 16:48:23 · 1497 阅读 · 1 评论 -
制作RockerMQ集群镜像
制作rocketmq-console-ng控制端镜像原创 2020-12-03 16:18:46 · 578 阅读 · 0 评论 -
制作ElasticSearch集群镜像
下载elastic search安装包elasticsearch-6.1.3.tar.gz下载jdk安装包jdk-8u261-linux-x64.tar.gz修改elasticsearch配置文件路径config/elasticsearch.yml多个节点的cluster.name保持一致,以此确认为同一集群cluster.name: datasong每个节点的node.name不同,以此确认为不同节点node.name: esnode1配置本节点的IP地址,如果是用K原创 2020-12-03 15:00:59 · 402 阅读 · 0 评论 -
部署本地jar包到docker容器中
DockerfileFROM centos:7ADD jdk-8u261-linux-x64.tar.gz /usr/localADD yuhangproxy-0.1.0.jar /home/yuhang/RUN mv /usr/local/jdk1.8.0_261 /usr/local/jdkRUN yum install -y nfs-utilsENV JAVA_HOME=/usr/local/jdkENV JRE_HOME=$JAVA_HOME/jreENV CLASSPATH=原创 2020-12-03 11:18:55 · 1250 阅读 · 0 评论 -
制作ElasticSearch的docker镜像(含nfs)
问题场景官方源下载的镜像不能直接使用,涵盖了包括X-pack商业插件,没有nfs工具等诸多问题,除此之外还有很多未发现的问题,决定自己手动制作一个es镜像。制作方法下载官方tar包(这样的话是不含x-pack商业化插件的)解压到本地,修改配置文件,具体修改如下config目录下elasticsearch.yml,将其中的cluster.name设置为统一的集群名,这样就可以通过相同的集群名发现,node.nam修改为改节点的名字,例如node1,node2等等,network.host一般修原创 2020-09-29 10:16:01 · 2034 阅读 · 0 评论 -
关于制作Docker镜像无法挂载NFS的问题
问题场景利用官方镜像或者基于Centos打镜像时,默认是没有nfs工具的,会导致挂载存储卷时报错。解决方案在centos中利用yum install -y nfs-utils安装后,基于这个在此打包新镜像或者编写Dockerfile时RUN yum install -y nfs-utils...原创 2020-09-17 17:32:13 · 941 阅读 · 0 评论 -
Docker容器宿主机之间的文件复制和挂载
从宿主机复制到容器:docker cp 宿主机本地路径 容器名字/ID:容器路径docker cp /root/123.txt mycentos:/home/从容器复制到宿主机:docker cp 容器名字/ID:容器路径 宿主机本地路径docker cp mycentos:/home/456.txt /root宿主机文件夹挂载到容器里:docker run -itd -v 宿主机路径:容器路径 镜像ID无法挂载文件夹到现有的容器,只能重新构建容器docker run -itd .原创 2020-08-21 10:10:54 · 1589 阅读 · 0 评论 -
Docker容器间利用brige网桥实现双向通信
创建一个新的网桥:docker network create -d bridge my_bridge查看创建的网桥:docker network ls启动第一个容器:docker run -itd --name tomcat centos:7启动第二个容器:docker run -itd --name redis centos:7把第一个容器加入网桥:docker network connect my_bridge tomcat把第二个容器加入网桥:docker network connect .原创 2020-08-21 09:35:40 · 561 阅读 · 0 评论 -
Docker容器间基于Link单向通信
问题场景Tomcat容器需要与Mysql容器通信,Tomcat需要向Mysql发送网络包读取数据,一般情况Mysql不需要主动向Tomcat发起请求,这种情况就是单项通信。一般情况下采用docker inspect 容器id查看IPAddress然后两个容器间互相Ping IP地址是可以Ping通的,因为启动采用是默认的桥接方式。但这种直接调用IP地址的情况存在局限性,比如:有一天一个容器死掉了,需要重新run一次镜像起一个新的容器,Docer可能会重新为其中一个容器分配IP地址,那么需要到所有对应的原创 2020-08-21 09:22:02 · 246 阅读 · 0 评论 -
Docker部署自己开发的应用,在外部访问
问题场景部署自己开发的应用时,无法通过docker run -p 端口号:端口号的形式映射端口。解决方案先获取docker内的IP地址docker inspect 容器id |grep IPAddress之前容器内配置的端口号是15680iptables -t nat -A DOCKER -p tcp --dport 15680 -j DNAT --to-destination 172.17.0.2:15680执行完后现在在外部也可以通过端口访问到这个应用了执行样例[root@ks-a原创 2020-08-19 16:11:29 · 860 阅读 · 0 评论 -
Docker快速部署mysql并指定初始化sql文件
文件信息Dockerfile#设定初始镜像mysql版本FROM mysql:5.7#设定工作目录,用于处理初始化mysql的sql文件WORKDIR /docker-entrypoint-initdb.d#默认mysql无法输入中文,修改编码使其支持中文ENV LANG=C.UTF-8#加入需要初始化的sql文件ADD datasong.sql .制作镜像docker build -t datasongmysql:5.7 .启动镜像docker run --name dat原创 2020-08-19 09:00:30 · 1065 阅读 · 0 评论 -
Dockerfile部署提示Mysql.sock无法打包成tar包
问题场景需要将公司业务打包成docker,业务内部嵌套了一个mysql,dockerfile初始化时会将整体文件打包成tar,但这个文件中包含.sock文件,提示无法将sock文件打包为tar解决方法将文件提前用tar打包好,导入到centos容器后再解压,执行别的操作,ADD操作自带解压效果FROM centos:7ADD jdk-8u261-linux-x64.tar.gz /usr/localADD release.tar.gz /home/datasong/RUN mv /usr/原创 2020-08-18 09:02:06 · 1323 阅读 · 0 评论 -
Harbor&Docker启动报错
(iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 127.0.0.1 --dport 1514 -j DNAT --to-destination 172.18.0.2:10514 ! -i : iptables: No chain/target/match by that name.修改完防火墙配置后(包括关闭防火墙)再启动harbor容器出现这个问题解决方法重启Docker,重启docker之前务必记录其他容器状态,防止重启原创 2020-08-10 10:38:20 · 815 阅读 · 0 评论 -
重启Harbor
harbor 通过docker-compose.yml配置文件的形式管理停止harbor,停止容器docker-compose stop启动容器docker-compose up -d原创 2020-07-22 13:32:27 · 14861 阅读 · 1 评论 -
Harbor的安装
前置条件安装docker安装一些必要的系统工具:sudo yum install -y yum-utils device-mapper-persistent-data lvm2添加软件源信息:sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo更新 yum 缓存:sudo yum makecache fast安装 Docker-ce:(企业版原创 2020-07-22 10:21:00 · 293 阅读 · 0 评论 -
Docker学习笔记十三:数据持久化-数据卷操作
在实际的生产环境中,数据的持久化是常见的操作。那么使用Docker如何实现数据持久化呢?数据卷是Docker容器对数据进行共享和持久化的方式之一。数据卷是一个可供容器使用的特殊目录,它将主机操作系统目录直接映射进容器,其生命周期独立于容器本身。创建一个数据卷Docker1.9版本以后,Docker提供了一条新的命令:docker volume,用来创建、查看、删除数据卷。而传统的docker run -v创建一个数据卷的方式也仍然保留了下来。可以使用docker volume create创建一个数据原创 2020-06-28 14:25:57 · 292 阅读 · 0 评论 -
Docker学习笔记十二:镜像构建时的缓存机制
在构建映像的过程中,Docker将按照指定的顺序逐步执行您的Dockerfile中的指令。随着每条指令的检查,Docker将在其缓存中查找可重用的现有映像,而不是创建一个新的(重复)映像。如果您不想使用缓存,可以在docker build命令中使用--no-cache = true选项。但是,如果您确实让Docker使用其缓存,那么了解何时会找到匹配的映像是非常重要的。Docker将遵循的基本规则如下:从已经在缓存中的父镜像开始,将下一个指令与从该基本镜像导出的所有子镜像进行比较,以查看其中一个是否使原创 2020-06-28 11:03:47 · 4469 阅读 · 0 评论 -
Docker学习笔记十一:CMD和ENTRYPOINT指令&ENV、EXPOSE、WORKDIR、ARG指令&ONBUILD和VOLUME指令
CMD指令CMD 指定默认的容器主进程启动命令格式:CMD <command>(shell格式)或 CMD [“executable”,”param1”,”param2”](exec格式,推荐格式)或 CMD[”param1”,”param2”]。(为ENTRYPOINT指令提供参数)CMD指令提供容器启动时运行的默认命令,例如ubuntu镜像默认的CMD是/bin/bash,因此我们可以直接使用 docker run -it ubuntu进入bash。同时也可以使用docker ru原创 2020-06-28 09:02:11 · 2973 阅读 · 0 评论 -
Docker学习笔记十:Docker build,COPY和ADD
Docker build命令详解Dockerfile创建完成后,可以使用docker build命令根据Dockerfile构建一个镜像。在上一关中,我们在Dockerfile所在的文件夹下执行docker build -t myimage .这条命令,然后镜像就被构建了。现在我们来详细地将这条命令。该docker build的命令格式如下:docker build [OPTIONS] 上下文路径|URL其中:docker build: 用Dockerfile构建镜像的命令关键词;-[OPTI原创 2020-06-27 18:29:39 · 4095 阅读 · 0 评论 -
Docker学习笔记九:初识Dockerfile
由于commit在构建镜像时,很容易将无关内容添加到镜像且维护起来十分困难。所以我们不推荐使用commit来构建一个镜像。官方推荐使用Dockerfile来构建一个镜像。Dockerfile简介镜像的定制实际上就是定制每一层所添加的配置、文件。那么如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜像,那么之前提及的无法重复的问题、镜像构建透明性的问题、体积的问题就都会解决。这个脚本就是Dockerfile。Dockerfile描述了组装镜像的步骤,其中每一条命令都原创 2020-06-26 15:30:59 · 323 阅读 · 0 评论 -
Docker学习笔记八:删除镜像&构建私有Registry
删除镜像如果要删除本地的镜像,可以使用 docker rmi (注意rm为删除容器,而rmi为删除镜像,其中i代表image)命令,它的具体语法如下:docker rmi [OPTIONS] IMAGE [IMAGE...]其中:docker rmi:Docker删除镜像的命令关键词;OPTIIONS: 命令选项,-f强制删除镜像;IMAGE:需要删除的镜像。这里的镜像可以用“镜像短ID”、“镜像长ID”、“镜像名”、“镜像的digest”来标识。使用docker images --di原创 2020-06-26 14:19:37 · 514 阅读 · 0 评论 -
Docker学习笔记七:导入导出容器
将“容器的文件系统”保存到tar包docker export是将“容器的文件系统”导出为一个tar包。注意是操作的对象是容器!它的具体语法如下:docker export [OPTIONS] CONTAINER其中:docker export: Docker将容器导出到tar包的命令关键词;OPTIIONS: 命令选项,-o指定写到一个文件中,而不是标准输出流中;Container: 需要导出到tar包的容器。例如,将容器container1的“文件系统”保存到tar包,对应的语句如下:原创 2020-06-26 13:19:55 · 399 阅读 · 0 评论 -
Docker学习笔记六:基于save保存镜像与基于load加载镜像
为了防止镜像丢失,需要为某个特殊的镜像备份。并且在需要的时候,使用备份的文件进行镜像恢复。将镜像保存到tar包docker save用来将一个或者多个镜像保存为一个tar文件,默认标准输出流的方式输出,它的具体语法如下:docker save [OPTIONS] IMAGE [IMAGE...]其中:docker save:Docker将镜像保存到tar包的命令关键词;OPTIIONS:命令选项,-o指定写到一个文件中,而不是标准输出流中;IMAGE: 需要保存到tar包的镜像,可以指定多原创 2020-06-26 12:57:31 · 1200 阅读 · 0 评论 -
Docker学习笔记五:基于Commit定制镜像
之前我们用到的镜像,无论是ubuntu镜像还是busybox镜像,都是来自于官方Docker Hub中的镜像。直接使用这些镜像是可以满足一定的需求,而当这些镜像无法直接满足需求时,就需要在这些镜像的基础上修改,来定制符合实际需求的镜像。以定制一个Web服务器镜像为例子讲述如何定制一个镜像。在nginx镜像的基础上,定制一个以“Hello Docker”为nginx欢迎界面的新镜像nginx:v1.0。对容器做出修改首先使用docker pull nginx:latest从Docker Hub中拉取一原创 2020-06-26 12:44:22 · 845 阅读 · 0 评论 -
Docker学习笔记四:进入容器&删除容器
使容器在后台运行有些时候,需要让容器在后台运行而不是直接把“启动命令”的结果输出在当前宿主机下。此时,可以通过添加-d参数来实现。举个例子,假如不使用-d参数执行下面这条命令:docker run ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"那么会一直在控制台输出hello world,如下所示:docker run ubuntu /bin/sh -c "while true; do echo hello w原创 2020-06-25 18:47:23 · 915 阅读 · 0 评论 -
Docker学习笔记三:获取镜像&启动容器&停止容器
获取镜像默认情况下,使用docker pull命令,会从官方的Docker Hub库中将镜像拉取到本地。首先介绍这条命令的格式:docker pull [OPTIONS] <仓库名>:<标签>其中:docker pull:Docker拉取镜像的命令关键词;[OPTIONS]:命令选项;仓库名:仓库名的格式一般为<用户名>/<软件名>。对于Docker Hub,如果不指定用户名,则默认为library,即官方镜像;标签:标签是区分镜像不同版本原创 2020-06-24 16:17:59 · 1571 阅读 · 0 评论 -
Windows10环境下Docker的安装配置
1、资源下载,详见往期博客2、Docker安装注意事项此处注意,不要勾选,勾选后会导致SETTING设置栏少很多功能原创 2020-06-24 16:50:28 · 2896 阅读 · 0 评论 -
mark一个docker for windows的下载网站
国内去docker网站下载速度太慢,找到一个国内网站,百度云链接更新下载,马克一下。点我下载原创 2018-10-10 19:49:02 · 3767 阅读 · 0 评论 -
Docker学习笔记二:使用Docker
Docker使用的基本过程容器需要基于一个镜像来创建和使用。因此,Docker容器的使用一般有以下三个步骤:获取一个镜像;基于该镜像创建并启动一个容器;进入该容器,执行“程序”。第一步:获取镜像上面我们提到了“镜像”可以理解为一个打包了运行环境的文件系统。然而在安装完Docker服务之后,本地是没有任何镜像的,所以首先需要获取所需要的镜像。第二步:创建并启动容器在获取到所...原创 2018-10-10 19:28:31 · 595 阅读 · 0 评论 -
Docker学习笔记一:了解Docker
简介:Docker是一个操作系统级的虚拟化技术,是基于LXC技术构建的轻量级容器引擎。与传统的虚拟化技术相比,Docker具有更高效的系统资源利用率、更快速的启动时间、提供一致的运行环境、更轻松的迁移等众多优势。自2013年0.1版本发布以来,围绕Docker逐渐形成了繁荣的生态,迅速的成为国内外各大云计算厂商和开发者手中的利器,并得到大规模的实践应用。Docker的特性在docker的官方...原创 2018-10-10 18:58:47 · 352 阅读 · 0 评论