mkdir test1
cd test1
touch 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
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”,也可以使用“仓库名:标签名”
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 删除。