2 Star 1 Fork 1

mm808 / docker-test

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
随手记.md 4.72 KB
一键复制 编辑 原始数据 按行查看 历史
大目 提交于 2021-02-21 22:03 . init

0.x

1.0 1.1 1.2.。。 1.13

2017.03

1.X : 语义化的版本命名

1:第几代

x:第几个次版本

2017.03:17年3月发布的版本

线上要使用被3整除的版本

尽量在下一个被3整除版本发布后1个月内完成升级 [可选]

2018.x

虚拟机时代的部署:

  • 采购机器,分配虚拟机
  • 开发/运维安装环境,安装java、python。。。
  • 部署业务系统

Docker部署

  • docker run -d -p 91:80 nginx

只要不是存储型应用,都可以用docker

* Mysql/oracle/serverserver/redis:建议继续使用物理机部署

底层:钱

CentOS Stream

类比

* 镜像 -> 装机光盘: iso

* 容器 -> 装机完成的机器

镜像:类

容器:对象

docker images --filter dangling=true

列出虚悬镜像

REPOSITORY           TAG       IMAGE ID       CREATED        SIZE
<null>              <null>    399265cd44a0   33 hours ago   359MB

公司服务器有网络管控

  • 在机器A [可以联网|这台机器是一个构建机器] 保存镜像 -> 把镜像相关的文件提取出来,并打成一个压缩包
  • 到机器B 去加载镜像:用压缩包导入

默认情况下,docker是前台运行容器的

网络模式

bridge:桥接网络,每个容器会有自己独立的虚拟网卡,宿主机和容器之间通过名为docker0的网桥通信

作业:

  1. 修改nginx首页,把内容改成:
<h1>HELLO WORLD</h1>
  1. 把修改后的容器,导出成镜像,名称是hello-world-nginx

现在 - 11:00 休息

11:01 - 11:16 做这个作业

11:17 评讲

/usr/share/nginx/html/index.html

apt-get update 可以更新仓库源

apt-get install vim 可以安装vim

Bridge:

  • 只要不做端口映射,容器个数理论没有上限【内存、cpu占满】
  • 缺点:要么得做端口映射,要么得inspect查看网卡信息,才能访问;而且对于mac,必须端口映射才能访问

host:

  • 直接用宿主机的网卡,不需要做桥接,使用更加简单
  • 缺点:有2个nginx容器,大家容器里面都是80端口,用host就会出现端口冲突(不灵活)

Overlay | Underlay

IntelliJ IDEA

VS Code

# 指定基础镜像
FROM arm64v8/openjdk:11.0.10-jre

# 未来用dockerfile构建成镜像之后,所启动出来的容器里面会有/a.iml文件
ADD zipkin-server-2.23.2-exec.jar /app.jar

COPY zipkin-server-2.23.2-exec.jar /app-copy.jar

# 构建参数:在用dockerfile构建镜像时的一些参数
ARG a=b

# 环境变量:在容器运行期间的环境变量
ENV c=d

# 作用1:描述指令,表示这个容器会使用9411端口,但是并不会让容器直接端口映射9411出去
# 作用2:用来在-P的时候做随机映射使用,会随机选择一个宿主机端口映射到9411
EXPOSE 9411

# RUN xxx 在构建期间执行的命令,用来装机的

# 描述端点,表示有这样的挂载点
VOLUME /tmp

# 入口点,容器启动时运行的命令
# ENTRYPOINT java -jar /app.jar
# 容器启动时运行的命令
WORKDIR /
CMD java -jar /app.jar


# ENTRYPOINT vs CMD
# ENTRYPOINT不可覆盖,ENTRYPOINT之后的可执行命令都会拼接到ENTRYPOINT指令之后去执行
# CMD可覆盖,有多个CMD命令,只会执行多个命令,后面一条CMD会完全覆盖前面一条

alpine

非常轻量的Linux发行版

import xxx

docker run xxx nginx -g 'daemon off;'

作业2:

  1. 用Dockerfile 修改nginx首页,把内容改成:
<h1>HELLO WORLD</h1>
  1. 镜像名称是 my-nginx-dockerfile

提示:搜索一下python是否有git代码版本管理工具

maven-release-plugin:会在每次发布新版本之后,自动升级项目的版本

版本规划:

  • 1.0.0.RELEASE:语义化的版本命名方式
    • 1:主版本,表示第几代,如果数字发生变化,往往代表不兼容,底层架构发生了变化
    • 0:次版本,表示功能的叠加,但是架构是不变的,一般要对使用者保持向后兼容【实际项目里面其实更多的情况是少部分不兼容,绝大部分兼容】
    • 0【可选】:增量版本,表示bug修复
    • RELEASE【可选】:表示版本的状态,RELEASE/留空/Final..正式版 Alpha/beta/snapshot/RC/CR..非正式版
  • 2020.05.0.RELEAE:日历命名方式
    • 2020:年份
    • 05:月份
    • 0【可选】:bug修复
    • RELEAE【可选】:版本状态

registry

  • Docker官方认定的中央仓库:1个 (docker hub)
  • 第三方中央仓库:n个 gcr.io quay.io aliyun ...可以说,每个云计算平台都会有一个自己的中央仓库
  • 私服:企业内部自己搭建的registry
1
https://gitee.com/mm808/docker-test.git
git@gitee.com:mm808/docker-test.git
mm808
docker-test
docker-test
master

搜索帮助