☁️
云安全攻防入门
  • 👨‍💻简介
  • 第一章 云上攻防体系介绍
    • 🐭云计算概念
    • 😀什么是云安全
    • 😁本章小结
  • 第二章 Linux攻防快速入门(上)
    • 🛠️Linux基础快速入门
    • 🏴󠁧󠁢󠁳󠁣󠁴󠁿文件管理和IO重定向
    • 🏴󠁧󠁢󠁳󠁣󠁴󠁿反弹SHell原理与检测思路
    • 🦊echo命令在攻击中应用
    • 🦉用户组在攻防场景中的应用
    • 🦤特殊权限管理与提权
    • 🦆SUDO授权与提权
    • 🐥文本三剑客
  • 第三章 Linux攻防快速入门(下)
    • 🎨Bash基础入门与应用
    • 🖥️Bash进阶-攻防实战场景应用
    • 🙉进程和计划任务
    • 🐸Linux服务-SSH攻防
  • 第四章 公有云攻防
    • 🐶云平台介绍
    • 🐱云产品概念
    • 🐭云安全中心简介
    • 🐹弹性计算服务攻防
    • 🐰对象存储攻防
    • 🦊基础设施即代码
    • 🐻云函数攻防
    • 🐼防御思路
  • 第五章 私有云与虚拟化攻防
    • 🐻‍❄️私有云与虚拟化
    • 🐨虚拟化介绍
    • 🐯虚拟化技术分类
    • 🦁KVM
    • 🐮Vmvare vSphere
    • 🐷OpenStack渗透场景
  • 第六章 云原生攻防
    • 🙉什么是云原生
    • 🙊云原生技术栈
    • 🐒Docker基础入门
      • 🐔镜像管理
      • 🐧Docker基础命令
      • 🐦Docker镜像制作
      • 🐤Docker数据管理
      • 🐣Docker网络管理
      • 🐥Docker仓库管理
    • 🦆Docker常见攻击方式
    • 🦤Kubernetes基础入门
    • 🦇Kubernetes常见攻击方式
      • 🐺Kubernetes ATT&CK
      • 🐗扩展知识
  • 第七章 云原生应用的DevOps
    • 🐴代码托管平台渗透场景
    • 🦄Jenkins渗透场景
    • 🐝CICD top 10 Security Risk
    • 🐛CICD渗透场景
Powered by GitBook
On this page

Was this helpful?

  1. 第六章 云原生攻防
  2. Docker基础入门

Docker镜像制作

制作镜像有两种方式,通过修改现有容器,将之手动构建为镜像,通过Dockerfile文件,批量构建为镜像。

docker commit

#拉取基础镜像
docker pull centos:centos7
 
#运行并安装内容
docker run -it centos:centos7 bash
 
#提交为镜像
docker commit -a "centos7 system" -m "install nmap" 容器ID giao/centos7-pte:v1
 
#从制作的镜像中启动容器
docker run -it --name centos-pte giao/centos7-pte:v1 bash

Dockerfile

Dockerfile文件格式

  • 指令不区分大小写,但惯例使用大写;

  • #作为注释;

  • 一行只支持一条指令,每条指令可以携带多个参数;

  • 指令按照文件顺序从上至下执行;

FROM

  • 指定基础镜像

FROM ubuntu

LABEL

  • 指定镜像元数据

LABEL version="1.0"

RUN

  • 执行shell命令

  • 每一个RUN指令都会建立一个镜像层,所以尽可能合并成一条。

RUN echo 'test' > /var/www/html/index.html
 
RUN ["bin/bash","-c","test"]
 
RUN yum -y install epel-release \
&& yum -y install vim \
&& yum -y install nmap

ENV

  • 设置环境变量

  • 定义的环境变量会被持续的指令(ADD,COPY,RUN)进行引用。

ENV FIleName="/etc/shadow" VERSION=1.0
RUN cat $FileName

COPY

  • 复制文本

  • 必需是Dockerfile所在目录的相对路径

  • 如果是目录,自身不会被复制

COPY home* /dockerdir/

ADD

  • 复制和解包文件

ADD web.tar.gz /var/www/html/

CMD

  • 容器启动命令

  • 只能有一个CMD用来指定启动容器时默认执行的一个命令

  • 每个Dockerfile只能有一条CMD命令,如果有多条会执行最后一条

  • 如果启动时指定命令,将会覆盖CMD指定命令

CMD ["nginx","-g","daemon off;"]
 
CMD /bin/httpd -f -h ${ROOT}

VOLUME

  • 匿名卷

  • 用于存放数据库和需要保持的数据

  • VOLUME实现是匿名数据卷,无法指定宿主机路径和容器目录挂载关系

#宿主机目录为
/var/lib/docker/volumes/<volume_id>/_data
 
#创建两个挂载点
VOLUME ["/data1","/data2"]

EXPOSE

  • 暴露端口

  • 即声明容器打算使用什么端口,不会自动端口映射,需要配合docker run -P

EXPOSE 80 443
EXPOSE 11211/udp 11211/tcp

WORKDIR

  • 指定工作目录

WORKDIR /app

USER

  • 指定当前用户

  • 须事先建立好,否则无法执行

RUN groupadd -r mysql && useradd -r -g mysql mysql
USER mysql
docker build
docker build .
docker build -f /path/Dockerfile .
docker build -t centos7-base:v1 .
PreviousDocker基础命令NextDocker数据管理

Last updated 1 year ago

Was this helpful?

🐒
🐦