dockerfile内容详细

一般文件内容分为五部分:

1.注释部分,类似说明,#开头

2.基础镜像信息:FROM开头

FROM image: tag

3.维护者信息:MAINTAINER开头

MAINTAINER user < user@example.com>

4.构建指令:指定的操作不会在运行的image容器上执行,RUN开头

RUN command

5.设置指令:指定的操作在运行的image容器中执行

1)CMD指令

CMD command param1 param2 ……

如果用户启动容器的时候指定了运行的命令,则会覆盖掉CMD指令

2)CMD配合ENTRYPOINT

CMD [ “-l”]
ENTRYPOINT [ “/usr/bin/ls”]

每个dockerfile中只能有一个ENTRYPOINT,当指定多个时,只有最后一个生效

3)USER(设置container的用户,默认是root用户)

ENTRYPOINT [“memcached”]
USER daemon

4)EXPOSE(指定container需要映射到宿主机的端口)

EXPOSE port < port> …….

5)ENV(用于设置环境变量)

ENV key value

6)ADD(从宿主机src复制文件到container的dest路径)

ADD src dest

7)VOLUME(指定挂载点)

VOLUME [“/tmp/data”]

8)WORKDIR(切换目录)
可以进行多次切换,对RUN,CMD,ENTRYPOINT生效。

WORKDIR /path

9)ONBUILD(在子镜像中执行)

ONBUILDENV [INSTRUCTION]

以下是在Ubuntu中使用Dockerfile安装vsftpd的详细步骤: 1. 首先,在本地计算机上创建一个文件夹,用于存储Dockerfile和相关文件。 2. 在该文件夹中创建一个名为Dockerfile的文件,并在其中输入以下内容: ``` FROM ubuntu:18.04 RUN apt-get update && \ apt-get install -y vsftpd RUN mkdir /ftp RUN chmod a-w /ftp RUN useradd -d /ftp ftpuser RUN echo "ftpuser:password" | chpasswd RUN echo "local_root=/ftp" >> /etc/vsftpd.conf RUN echo "write_enable=YES" >> /etc/vsftpd.conf RUN echo "local_umask=022" >> /etc/vsftpd.conf RUN echo "user_sub_token=$USER" >> /etc/vsftpd.conf RUN echo "local_enable=YES" >> /etc/vsftpd.conf RUN echo "chroot_local_user=YES" >> /etc/vsftpd.conf RUN echo "pasv_enable=YES" >> /etc/vsftpd.conf RUN echo "pasv_min_port=40000" >> /etc/vsftpd.conf RUN echo "pasv_max_port=40100" >> /etc/vsftpd.conf RUN echo "listen_ipv6=NO" >> /etc/vsftpd.conf EXPOSE 20 21 40000-40100 CMD ["/usr/sbin/vsftpd", "/etc/vsftpd.conf"] ``` 上述Dockerfile文件定义了一个基于Ubuntu 18.04的镜像,并在其中安装了vsftpd。还定义了一些vsftpd配置选项,以及将端口暴露给主机。 3. 接下来,创建一个名为vsftpd.conf的文件,并在其中输入以下内容: ``` anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES chroot_local_user=YES listen=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES ``` 此文件设置了vsftpd的配置选项。 4. 然后,通过运行以下命令在本地计算机上构建镜像: ``` docker build -t vsftpd . ``` 5. 构建完成后,可以使用以下命令在容器中运行vsftpd: ``` docker run -p 20:20 -p 21:21 -p 40000-40100:40000-40100 -d vsftpd ``` 这将在容器中启动vsftpd服务器,并将主机的端口20、21和40000-40100映射到容器中的相应端口。 6. 现在,可以使用FTP客户端连接到主机的IP地址,并使用用户名“ftpuser”和密码“password”登录。您应该能够访问/ftp文件夹,并在其中上传和下载文件。 这是在Ubuntu中使用Dockerfile安装vsftpd的详细步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值