写点什么

极客时间运维进阶训练营第二周作业

作者:曹张倪
  • 2022-10-30
    上海
  • 本文字数:1383 字

    阅读完需:约 5 分钟

极客时间运维进阶训练营第二周作业

基于 dockerfile,实现分层构建的 nginx 业务镜像

构建基于 ubuntu 的自定义基础镜像

# 创建构建目录mkdir system-base && cd system-base# 创建Dockerfile文件并放入如下指令FROM ubuntu:22.04MAINTAINER "jack 2973707860@qq.com"RUN apt update && apt install -y iproute2 ntpdate tcpdump telnet traceroute nfs-kernel-server nfs-common lrzsz tree openssl libssl-dev libpcre3 libpcre3-dev zlib1g-dev ntpdate tcpdump telnet traceroute gcc openssh-server lrzsz tree openssl libssl-dev libpcre3 libpcre3-dev zlib1g-dev ntpdate tcpdump telnet traceroute iotop unzip zip make# 执行构建docker build -t harbor.magedu.net/myserver/ubuntu-base:22.04 .
复制代码

构建基于自定义基础镜像的 nginx 基础镜像

# 创建构建目录,并放入nginx源码包nginx-1.22.1.tar.gzmkdir nginx-base && cd nginx-base# 创建Dockerfile文件并放入如下指令FROM harbor.magedu.net/myserver/ubuntu-base:22.04ADD nginx-1.22.1.tar.gz /usr/local/src/RUN cd /usr/local/src/nginx-1.22.1 && ./configure --prefix=/apps/nginx && make && make install  && ln -sv /apps/nginx/sbin/nginx /usr/bin# 执行构建docker build -t harbor.magedu.net/myserver/nginx-base:v1.22.1 .
复制代码

构建基于 nginx 基础镜像的项目镜像(即业务镜像)

# 创建构建目录,并放入ENTRYPOINT脚本docker-entrypoint.sh、配置文件nginx.conf及项目文件frontend.tar.gzmkdir nginx-web1 && cd nginx-web1# 创建Dockerfile文件并放入如下指令FROM harbor.magedu.net/myserver/nginx-base:v1.22.1RUN groupadd  -g 2088 nginx && useradd  -g nginx -s /usr/sbin/nologin -u 2088 nginx && chown -R nginx.nginx /apps/nginxADD nginx.conf /apps/nginx/conf/ADD frontend.tar.gz /apps/nginx/html/EXPOSE 80 443 8080COPY docker-entrypoint.sh /docker-entrypoint.shRUN chmod a+x /docker-entrypoint.shENTRYPOINT ["/docker-entrypoint.sh"]# 执行构建docker build -t harbor.magedu.net/myserver/myserver-web1:v1 .
复制代码

启动容器并验证

# 启动容器docker run -d -p 80:80 harbor.magedu.net/myserver/myserver-web1:v1# 访问curl localhost
复制代码


基于 docker 实现对容器的 CPU 和内存的资源限制


部署 http 协议的 harbor 镜像仓库

# 确保已经安装了docker和docker compose,要求版本如下:# docker 17.06.0-ce+ and docker-compose 1.18.0+ .docker versiondocker compose version
# 下载离线安装包wget https://github.com/goharbor/harbor/releases/download/v2.6.1/harbor-offline-installer-v2.6.1.tgz
# 解压tar -xvf harbor-offline-installer-v2.6.1.tgzcd harbor
# 修改配置文件,主要是修改域名,注释https及admin密码# 执行安装并启动./install.sh --with-trivy --with-chartmuseum
# 将域名解析添加到client的hosts文件
# 在client端通过浏览器即可访问

复制代码


掌握 containerd 的安装(扩展作业)

待补充

基于 nerdctl 拉取镜像和创建容器(扩展作业)

待补充


其他

这只是为了填充 infoq 字数;这只是为了填充 infoq 字数;这只是为了填充 infoq 字数;这只是为了填充 infoq 字数;这只是为了填充 infoq 字数;这只是为了填充 infoq 字数;这只是为了填充 infoq 字数;这只是为了填充 infoq 字数;

用户头像

曹张倪

关注

还未添加个人签名 2018-08-24 加入

还未添加个人简介

评论

发布
暂无评论
极客时间运维进阶训练营第二周作业_曹张倪_InfoQ写作社区