docker的安装和dockfile指令,docker网络介绍_dockfile安装docker-csdn博客


本站和网页 https://blog.csdn.net/DLWH_HWLD/article/details/119987934 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

docker的安装和dockfile指令,docker网络介绍_dockfile安装docker-CSDN博客
docker的安装和dockfile指令,docker网络介绍
淡泪无痕
已于 2022-10-31 09:02:27 修改
阅读量534
收藏
点赞数
分类专栏:
K8S集群,容器技术
文章标签:
docker
centos
运维
容器
自动化
于 2021-09-07 13:56:26 首次发布
版权声明:本文为博主原创文章,遵循
CC 4.0 BY-SA
版权协议,转载请附上原文出处链接和本声明。
本文链接:
https://blog.csdn.net/DLWH_HWLD/article/details/119987934
版权
专栏收录该内容
9 篇文章
2 订阅
订阅专栏
docker的安装和dockfile指令,docker网络介绍
1、安装docker并配置镜像加速。
2、dockerfile常用指令总结。
3、基于alpine制作tomcat镜像
4、利用桥接实现不同宿主机间容器互联。
官网安装教程:
官网安装docker
阿里云安装docker教程
阿里云安装docker
yum安装方式(用阿里云的镜像安装)
mv
/etc/yum.repos.d/* /root/
删除老的yum源
下载阿里云源和docker的源
wget
-O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
-O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
sed
-i -e
'/mirrors.cloud.aliyuncs.com/d'
-e
'/mirrors.aliyuncs.com/d'
/etc/yum.repos.d/CentOS-Base.repo
下载docker源
-O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum clean all
删除缓存
yum makecache
更新yum源
yum list docker-ce --showduplicates
查看全部可安装的docker版本
安装docker19.03
yum
install
docker-ce-19.03.12-3.el7 docker-ce-cli-19.03.12-3.el7
-y
systemctl start
启动docker
systemctl
enable
设置开机启动docker
run hello-world
运行hello容器查看docker是否正常运行
docker镜像加速配置
官网注册阿里云地址
阿里云
注册账户,然后点击账户中心,左侧就可以看到搜索栏
搜索容器镜像服务
左侧选择镜像加速器,右侧就是阿里云免费提供的镜像加速服务,按照提示输入即可
vi
/etc/docker/daemon.json
添加内容,设置加速,可自行去阿里云网站注册账户加速镜像下载。
"registry-mirrors"
"https://registry.docker-cn.com"
systemctl restart
重启docker
dockerfile常用指令:
官网介绍:
dockfile介绍
FROM:指定基础镜像来源,利用这个基础镜像生成新的镜像
示例:FROM centos:7.6.1810
LABEL:镜像备注或镜像简介
示例:LABEL
version
=
centos:7.6.1810
RUN:相当于shell中的/bin/sh -c,在配置时执行命令
示例:RUN yum
-y httpd (需要原本的镜像支持yum)
ENV:设置环境变量,示例:变量名=变量值
示例:ENV
VERSION
1.2
.0
COPY:把真机的文件复制到镜像中,保留格式。
注意:
对于文件,真机的文件需要放在和dockfile文件平级目录下,比如dockfile在/docker目录下,那么真机的文件如index.html也必须要在这个/docker目录下。
对于目录,如果在/dockerfile目录下有/dockerfile/aa目录,/dockerfile/aa目录下还有/dockerfile/aa/bb目录,实际只会复制源目录下的子目录/dockerfile/aa/bb和/dockerfile/aa/里面的其他文件和目录,不会复制aa目录本身。
目标路径后面必须指定到/,如要复制到容器的/home目录,实际必须为/home/
示例:COPY index.html /home/
COPY aa /home/
ADD:COPY的增强版,支持自动解压压缩包。可解压tar.gz包
示例:ADD nginx-1.18.0.tar.gz /data/nginx/
CMD:启动容器内的程序,一个镜像有且只有一个CMD,多个CMD只会运行最后一个CMD指令
示例:CMD
"nginx"
"-g"
"daemon off;"
VOLUME:数据卷,将容器内的某个目录映射到真机的某个真实目录下,默认为容器内的目录如/data/映射到真机目录下的随机名字,删除容器后不会删除这个目录。可以配合docker -v真机目录:容器目录绑定目录使用。
示例:VOLUME
"/data1"
EXPOSE:将容器内的端口映射到真机的随机端口或指定端口上,需要配合docker -P或docker -p 真机端口:容器端口绑定使用
示例:EXPOSE
80
WORKDIR:指定工作目录,设置初始化进入容器后的目录。如果想做镜像时把东西都放在同一个目录下,这里指定即可。
示例:WORKDIR /usr/local/
USER:指定使用容器的账户,默认镜像都是root账户,需要指定为其他账户时,这里指定。
示例:
USER
mysql
HEALTHCHECK:容器健康状态检查,每几秒检查下服务状态。
示例:HEALTHCHECK --interval
5s --timeout
3s
SHELL:默认shell版本为/bin/sh,可以在配置中指定运行版本shell的版本,可以多次重定向shell的版本
SHELL
"/bin/bash"
"-c"
创建镜像方式:
Dockfile
编辑文件,添加需要的命令
.代表当前目录,需要把COPY和ADD的文件都放在和dockfile文件同个目录下
build -t 镜像名:版本号 -f ./dockfile
按照上面方法安装docker
下载安装Java的源码包和tomcat源码包到/docker目录下
Java包下载链接(需要注册账户才能下载)
Java官网
tomcat下载链接
tomcat官网
mkdir
/docker
新建目录,存放dockfile需要的文件
cd
/docker/
进入目录
#alpine不支持Java的环境,需要安装glibc,要不然会出现找不到路径的问题/bin/sh: java: not found,下载下面的环境和安装包到/docker目录下
#详细介绍网站
https://github.com/sgerrand/alpine-pkg-glibc/
https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub
https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.34-r0/glibc-2.34-r0.apk
编辑repositories文件
#这个文件相当于centos的repo文件或Ubuntu的sources.list,改为国内源加速下载
repositories
添加
https://mirrors.aliyun.com/alpine/v3.6/main
https://mirrors.aliyun.com/alpine/v3.6/community
编辑tomcat的conf文件
tomcat.conf
添加Java路径
JAVA_HOME
/usr/local/jdk
编辑tomcat网页文件,可以不写,不写默认就是tomcat本身网页
echo
"tomcat-web"
>
/docker/index.html
ls
总共7个文件在/docker目录下
apache-tomcat-8.5.70.tar.gz
glibc-2.34-r0.apk
index.html
jdk-8u301-linux-x64.tar.gz
sgerrand.rsa.pub
编辑dockfile文件
dockfile
FROM alpine:3.13
LABEL
alpine3.13-tomcat8.5
#初始环境配置
COPY sgerrand.rsa.pub /etc/apk/keys/
COPY glibc-2.34-r0.apk /usr/local/
COPY repositories /etc/apk/
RUN
/usr/local/
&&
apk
add
#安装Java
ADD jdk-8u301-linux-x64.tar.gz /usr/local/
ln
-s /usr/local/jdk1.8.0_301 /usr/local/jdk
ENV
PATH
$PATH
$JAVA_HOME
/bin
JRE_HOME
/jre
CLASSPATH
/lib/:
$JRE_HOME
/lib
#安装tomcat
ADD apache-tomcat-8.5.70.tar.gz /usr/local/
-s /usr/local/apache-tomcat-8.5.70/ /usr/local/tomcat
:/usr/local/tomcat/bin
COPY tomcat.conf /usr/local/tomcat/conf/
COPY index.html /usr/local/tomcat/webapps/ROOT/
EXPOSE
8080
CMD
"/usr/local/tomcat/bin/catalina.sh"
"run"
利用dockfile生成镜像
build -t alpine-tomcat:v0.1 -f ./dockfile
生成镜像
image
利用生成的镜像alpine-tomcat:v0.1
run -P -it --rm alpine-tomcat:v0.1
前台启动容器
run -P -it -d alpine-tomcat:v0.1
想要后台启动容器,用这个命令
ps
-a
查看容器启动,真机端口为32768
访问网站,测试网页访问
curl
http://192.168.116.145:32768
拓扑图:
初始环境配置:
2台真机都安装docker服务,按上面做法安装docker
需要利用到iptables的nat策略:
iptables介绍
系统
IP
centos 7.8/ 真机1
真机P:192.168.116.145,容器网段:10.0.0.0/24
centos 7.8/ 真机2
真机P:192.168.116.146,容器网段:20.0.0.0/24
真机1配置:
启动容器,初始化配置
添加文件,设置网卡网段
"bip"
"10.0.0.1/24"
重启网卡
ip
确认网段被修改了
真机2配置:
"20.0.0.1/24"
容器创建
真机1创建容器
run -it --name docker1-a1 busybox
可以看到容器IP为10.0.0.2
真机2创建容器
run -it --name docker2-b1 busybox
可以看到容器ip为20.0.0.2
没加nat策略前
真机1测试:
ping
192.168
.116.146
真机1和真机2的真机IP能互通
10.0
.0.2
真机1和自己的容器IP能互通
20.0
真机1和真机2的容器IP不能互通
真机1的容器测试
.116.145
真机1的容器和真机1能通
真机1的容器和真机2的真机IP能通
真机1的容器和真机2的容器不能互通
真机2测试:
真机2和真机1的真机IP能互通
真机2和自己的容器IP能互通
真机2和真机1的容器IP不能互通
真机2的容器测试
真机2的容器和真机2能通
真机2的容器和真机1的真机IP能通
真机2的容器和真机1的容器不能互通
添加nat策略后
真机1添加nat策略
route
.0.0/24 via
iptables -A FORWARD -s
.116.0/24 -j ACCEPT
真机2添加nat策略
最终测试
真机1容器测试
真机1的容器和真机2的容器能互通
真机2容器测试
真机2的容器和真机1的容器能互通
优惠劵
关注
点赞
觉得还不错?
一键收藏
知道了
评论
docker的安装和dockfile指令,docker网络介绍1、安装docker并配置镜像加速2、dockerfile常用指令总结。3、基于alpine制作tomcat镜像4、利用桥接实现不同宿主机间容器互联。
复制链接
扫一扫
专栏目录
Docker
Doc
file
制作
详细
介绍
二十四桥明月夜
10-19
1624
有些镜像不能满足我们的生产环境的需要就需要自己来制作镜像;制作镜像有两种方式:
1、基于镜像【修改
: 自定义
缺点所有的配置都是写死的不能灵活配置【假设我们需要三个镜像:测试,开发,线上配置都是不相同,实现起来配置是很麻烦的,都需要重新制作】;
事实上
在配置文件山解决方案是:
nginx这个镜像启动为
后只做一件事情,配置一个虚拟主机,提供一个虚拟Server,它所服务主机名、家目录、监听的端口,文档根目录,在什么时候?由于配置的环境影响可能可不一样,当时它的配置文件格式是.
安装
到项目发布全过程(详解)
lu__lala的博客
07-04
1161
到项目发布详细全过程
参与评论
您还未登录,请先
登录
后发表或查看评论
-glibc-builder:
中的glibc二进制软件包构建器
05-09
-glibc-builder
中的glibc二进制软件包构建器。 产生一个glibc二进制软件包,可以将其导入rootfs来运行针对glibc动态链接的应用程序。
用法
基于2.33版本构建一个glibc软件包,其前缀为/usr/glibc-compat :
run --rm --env STDOUT=1 sgerrand/glibc-builder 2.33 /usr/glibc-compat > glibc-bin.tar.gz
您还可以保留
并复制出结果文件:
run --name glibc-binary sgerrand/glibc-builder 2.33 /usr/glibc-compat
cp glibc-binary:/glibc-bin-2.33.tar.gz ./
rm glibc
(0)-
DOCKER
FILE
-常用命令-部署-迁移备份-仓库
最新发布
aggie4628的专栏
03-09
887
的基本操作,亲测可行,供大家参考
07-
File
xixihaha_coder的博客
12-12
629
文章目录
构建过程
指令
实战:构建自己的
和 ENTRYPOINT 的区别实战:
制作tomcat镜像发布镜像发布镜像到阿里云镜像
服务
所有流程小结
是用来构建dokcer镜像的文件! 命令参数脚本 !
构建步骤:
1、编写一个
文件
2、
build构建成为一个镜像
3、
run运行镜像
4、
pus
【react+ts】找不到less类型,Cannot find module ‘./xxx.module.less‘ or its corresponding type declarations
我的开源项目:https://gitee.com/derekgo/vue-cms_xg
01-26
5026
问题描述
Cannot find module ‘./index.module.less’ or its corresponding type declarations
找不到less后缀名的类型
解决办法
在src目录下创建类型声明文件react-app-env.d.ts,并且声明less类型
内容如下
declare module '*.module.less' {
const classes: { readonly [key: string]: string };
export de
中出现version `GLIBC_2.34‘ not found问题
qq_64658112的博客
08-11
1468
【代码】
中出现version `GLIBC_2.34‘ not found问题。
09-18
及基本使用方法详细
09-30
本篇文章主要
,对于初学者有一定的参考作用,有需要的可以了解一下。
方法与
四种
网络
模式详解
今天小编就为大家分享一篇关于
模式的详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
tileserver-gl和配置使用
01-20
pull klokantech/tileserver-gl:latest
save -o ./tileserver-gl.tar klokantech/tileserver-gl:latest # 把 tileserver-gl.tar拷贝到内网
load --input ./tileserver-gl.tar
编写配置文件,...
在线
合集
09-02
以下是在
CentOS
7 上
1. 首先,打开终端并以 root 用户身份登录。 2. 如果您的系统上之前已经
了旧版本的
,请先卸载掉旧版本。可以使用以下命令进行卸载:
yum remove
...
-从最基础到
-compose,有这一篇足够了!!!
h16678481的博客
06-20
1200
从0-1,从小白-熟练使用
的高手
高级篇】
自定义镜像
输入技术、输出想法
06-15
701
打包镜像FROMRUNCOPYADDCMDWORKDIREXPOSEENV数据卷 (达到负载均衡的效果 )启动一个挂载数据卷的
压缩
打包镜像
build -t 镜像名
文件的位置
FROM
FROM tomcat
FROM 指定此
需要依赖的
分层执行shell脚本命令
RUN unzip my-shop-web-admin-1.0.0-SNAPSHOT.zip
RUN rm -rf my-s
JAVA开发区的博客
04-20
5054
是用来构建
镜像的文件!是一个命令参数脚本
构建步骤:
build 构建成为一个镜像
run 运行镜像
push 发布镜像(
Hub、阿里云仓库)
使用
运行java项目需要注意的glibc依赖库问题
demon7552003的小本本
10-28
3496
转载自:https://blog.51cto.com/u_15329153/3758717
官方推荐java是基于glibc库,而alpine默认只提供mini libc,故需要
glibc库
官方wiki:
https://wiki.alpinelinux.org/wiki/Running_glibc_programs
: https://github.com/sgerrand/alpine-pkg-glibc
如下这些是
经箓:
下的自己的环境布置
liurugongzi123的博客
09-25
294
布置自己环境
——
、常用命令、生成镜像(
蒋含竹的博客
04-18
2422
、常用命令、生成镜像1.
2.
常用命令2.1 基础信息类2.2 镜像-基础命令2.3
-基础命令2.4
与宿主机(拷贝、端口映射、路径映射)3. 生成镜像3.1 Commit 方式3.2
方式
、常用命令、生成镜像
1.
切换到root用户 $ su - root
完善"
"
06-09
好的,以下是一个完善"
的脚本示例:
```bash #!/bin/bash
# 检查
是否已
if ! command -v
&> /dev/null then
echo "
echo "请先
echo "参考...
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
CSDN认证博客专家
CSDN认证企业博客
码龄4年
暂无认证
47
原创
10万+
周排名
65万+
总排名
8万+
访问
等级
515
积分
35
粉丝
32
获赞
私信
热门文章
K8S-kubectl scale(静态)扩缩容pod,K8S-kubectl autoscale(动态)扩缩容pod,K8S的HorizontalPodAutoscaler(HPA)机制自动扩容缩容
8541
centos 7升级内核,yum方式升级内核,编译方式升级内核
8323
网站压测工具Apache-ab,webbench,Apache-Jemeter
5885
yum安装K8S,k8s加dockerfile部署运行nginx+tomcat+httpd实现动静分离,容器重建后自动映射端口
5012
nginx日志切割,logrotate和nginx日志切割
4360
分类专栏
9篇
系统服务
6篇
集群服务
3篇
虚拟化技术
2篇
运维基础
26篇
最新评论
mysql的增删改查,mysql常用命令
m0_71085365:
增加的格式
nginx的常用模块配置详解,nginx的核心块使用,nginx http块使用,nginx location块使用
cy112468:
博主yyds,我还有些问题想沟通一下,方便把您微信私信发给我吗谢谢
「已注销」:
大佬就是大佬,写的真好,给你三连了,可以去看看我的文章吗?
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
最新文章
K8S的控制器Deployment,ReplicaSet,StatefulSet,CronJob,最小单位pod
2022年
19篇
2021年
28篇
目录
被折叠的 
 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
添加红包
祝福语
请填写红包祝福语或标题
红包数量
红包个数最小为10个
红包总金额
红包金额最低5元
余额支付
当前余额
3.43
前往充值 >
需支付:
10.00
取消
确定
下一步
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝
规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。
余额充值