首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >docker 镜像制作示例

docker 镜像制作示例

原创
作者头像
用户10048459
修改2022-10-22 14:01:03
2.7K0
修改2022-10-22 14:01:03
举报
文章被收录于专栏:执笔绘倾城执笔绘倾城

第一步:新建一个目录和一个 Dockerfile

mkdir test1
cd test1
touch Dockerfile

第二步:编写Dockerfile,Dockerfile中每一条指令都创建镜像的一层,例如:

vim Dockerfile
# 这里是注释
# 设置以哪个镜像为基础
FROM hub.c.163.com/public/centos:7.2-tools
# 下面是一些创建者的基本信息
MAINTAINER zhujiantang “18153959643@163.com”
# 在终端需要执行的命令
RUN yum -y install lrzsz net-tools vim httpd && httpd
RUN echo “zhujiantang” >> /var/www/html/index.html

第三步:编写完成 Dockerfile 后可以使用 docker build 来生成镜像。

docker build -t httpd:v1 .
# 参数:
# -t 标记来添加 tag,指定新的镜像名称信息和版本。 
# “.” 是 Dockerfile 所在的路径(当前目录),也可以替换为一个具体的 Dockerfile 的路径。
进入创建的容器
docker run --name httpd -p 80:80 -d httpd:v1
# 以交互方式运行docker
docker exec -it httpd /bin/bash
# 参数:
# -i:表示以“交互模式”运行容器,-i 则让容器的标准输入保持打开
# -t:表示容器启动后会进入其命令行,-t 选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上
# -p:指定容器对外80端口,此处为本机的80端口映射容器的80端口
# 不一定要使用“镜像 ID”,也可以使用“仓库名:标签名”

扩展docker用法:

FROM ubuntu:bionic
LABEL maintainer="jingpingyin@xxx.com"

WORKDIR /root
RUN apt update -y && \
    apt install -y --no-install-recommends \
    curl wget nasm yasm unzip zip sudo jq vim less

COPY ./target/release/rustdesk-server /root
COPY ./entrypoint.sh /root

RUN sudo chmod 777 entrypoint.sh
CMD bash /root/entrypoint.sh
FROM  --- 基础镜像,本例在 Unbutu 镜像的基础上制作本镜像。
WORKDIR --- 设置镜像内的工作目录,本例中为 /root。
RUN  --- 在 docker 内执行命令,多个 RUN 命令合并成一个,可以减小镜像大小。本例先后利用该命令安装了一些工具和修改脚本权限。
COPY --- 将主机上的目录或文件拷贝到 docker 镜像内,本例中:
将编译生成的可执行二进制文件 ./target/release/rustdesk-server 拷贝到 docker 镜像中的 /root 目录下
将 docker 启动后要执行的脚本文件 ./entrypoint.sh 拷贝到 docker 镜像中的 /root 目录下
CMD --- 执行容器启动命令。
容器启动后要执行的脚本 entrypoint.sh:
#!/bin/bash -e

mkdir -p /root/logs
/root/rustdesk-server >> "/root/logs/server_$(date +%Y%m%d-%H%M).log" 2>&1

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第一步:新建一个目录和一个 Dockerfile
  • 第二步:编写Dockerfile,Dockerfile中每一条指令都创建镜像的一层,例如:
  • 第三步:编写完成 Dockerfile 后可以使用 docker build 来生成镜像。
  • 扩展docker用法:
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档