马哥门徒N57-SRE第五周

1、安装docker并配置镜像加速。

Ubuntu操作过程。

root@ubuntu:~# ip a
root@ubuntu:~# vi /etc/apt/sources.list (修改阿里源)
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
root@ubuntu:~# apt-get update (更新)
root@ubuntu:~# apt update;apt-get -y install apt-transport-https ca-certificates curl software-properties-common(安装必要软件)
root@ubuntu:~# curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - (下载证书)
root@ubuntu:~# sudo add-apt-repository “deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable”
root@ubuntu:~# apt-get update
root@ubuntu:~# apt-get -y install docker-ce(安装最新版docker)
root@ubuntu:~# docker version
root@ubuntu:~# docker run hello-world
在这里插入图片描述在这里插入图片描述CentOS版本安装过程
#yum install docker -y (dnf install podman)
#systemctl start docker
#docker version
#docker run hello-world
#vim /etc/containers/registries.conf (修改拉取镜像的地址顺序,提高速度)
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
配置镜像加速
ubuntu为例,注册阿里云加速地址。
root@ubuntu:~# mkdir -p /etc/docker
root@ubuntu:~# tee /etc/docker/daemon.json <<- ‘EOF’

{
“registry-mirrors”: [“https://si7y70hh.mirror.aliyuncs.com”]
}
EOF
{
“registry-mirrors”: [“https://si7y70hh.mirror.aliyuncs.com”]
}
root@ubuntu:~# systemctl daemon-reload
root@ubuntu:~# systemctl restart docker

在这里插入图片描述

2、dockerfile常用指令总结。

什么是Dockerfile?

dockerfile用于快速有序且直观地完成对镜像的定制。

Dockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。
Dockerfile常用指令
FROM

FROM命令指定了基础镜像,比如FROM ubuntu,则表示你的镜像的基本镜像来自ubuntu
MAINTAINER

maintainer意为维护者,用来标识维护者信息(作者)
RUN

格式为 RUN 或`RUN [“executable”, “param1”, “param2”],命令较长时可以使用****换行
CMD

格式为

CMD [“executable”, “param1”, “param2”]
CMD command param1 param2(在/bin/sh中执行)
CMD [“param1”, “param2”](提供给ENTRYPOINT的默认参数)

如果用户启动容器时指定了运行的指令,则会覆盖掉CMD的指令
EXPOSE

告诉Docker容器需要暴露的端口号,这样在启动时可以通过-P或-p来指定对应的端口映射
例:EXPOSE 20 8080
ENV

指定环境变量,会被后续的RUN指令使用,并在容器运行时保持
如ENV PG_VERSION 9.3.4
ADD

ADD
该指令可以复制文件或目录到容器,可以是Dockerfile所在目录的相对路径,也可以是URL,也可以是tar(会自动解压)。
COPY

COPY

复制本机的为容器的,相比ADD,它不支持URL,自动解压。
ENTRYPOINT

入口点,格式为ENTRYPOINT [“executable”, “param1”, “param2”] 或ENTRYPOINT command param1 param2(sh)
入口点只能被配置一个,在容器启动时会自动被执行,和CMD相比,它的特点是不会被用户提供的命令覆盖
VOLUME

指定数据挂载,创建数据卷
格式为:

VOLUME ["<路径1>", “<路径2>”…]
VOLUME <路径>

USER

指定运行容器时的用户名或UID,后续的RUN也会使用指定用户,可以通过这种方式限制权力
WORKDIR

指定WORKDIR,方便后续的RUN指令执行,后续的相对路径依据与WORKDIR
ONBULID

当该镜像将来被用来作为其它镜像的基础镜像时所执行的操作指令(新的Dockerfile使用From thisImage)
如ONBULID ADD . /app/src,ONBULID RUN echo “onbulid”
docker build命令依据Dockerfile创建镜像

docker build path,会自动搜索path下的Dockerfile,并将Dockerfile路径下所有的目录和文件发送到Docker服务端,由服务端来创建镜像
通过-t 可以指定生成的镜像的标签
使用.dockerignore 忽略路径下的目录和文件

每一行添加一条匹配模式,语法类似.gitignore

3、基于centos7制作tomcat镜像

#alias rmc=‘docker ps -qa |xargs docker rm -f’

(docker rmi IMAGE ID)
docker 如何删除none镜像
删除none的镜像,要先删除镜像中的容器。要删除镜像中的容器,必须先停止容器。

$ docker images

$ docker rmi $(docker images | grep “none” | awk ‘{print $3}’)
直接删除带none的镜像,直接报错了。提示先停止容器。

$ docker stop $(docker ps -a | grep “Exited” | awk ‘{print $1 }’) //停止容器

$ docker rm $(docker ps -a | grep “Exited” | awk ‘{print $1 }’) //删除容器

$ docker rmi $(docker images | grep “none” | awk ‘{print $3}’) //删除镜像

基于alpine制作tomcat镜像的资料比较少 ,改用基于centos7制作tomcat镜像
3.1自定义Centos系统基础镜像

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述3.2构建JDK镜像

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.4从JDK镜像构建tomcat 8 Base镜像
在这里插入图片描述在这里插入图片描述在这里插入图片描述3.5 构建业务镜像
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

3.6测试
在这里插入图片描述在这里插入图片描述

4、利用桥接实现不同宿主机间容器互联。

根据课程内容,跨宿主机的容器之间网络互联,有四种方式实现。

(1)利用网桥实现跨宿主机的容器间互联
(2)利用NAT实现跨主机的容器间互联
(3)利用Open vSwitch实现跨主机的容器间互联
(4)使用weave实现跨主机的容器间互联

在这里插入图片描述
在这里插入图片描述
两台宿主机:
首先安装bridge-utils
设置docker0
在这里插入图片描述

容器1:
在这里插入图片描述容器2:
在这里插入图片描述
实验实现,不过这个方式感觉应用起来不太方便,单台配置容器里的IP地址问题待优化,比如相同网段的不通IP段。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值