ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
* 使用dockerfile构建镜像 Dockerfile 中 ADD 和 COPY 命令不能使用绝对路径,只能使用相对路径。这点在官方文档中说的比较清楚 ~~~ cd docker16.04s vim Dockerfile ~~~ ~~~ FROM hub.c.163.com/public/ubuntu:16.04 # 基础镜像 MAINTAINER tuna "tuna_dai@163.com" # 维护者信息 RUN mkdir -p /var/run/sshd # 安装ssh、vim等 RUN apt-get update \ && apt-get update && apt-get install -y openssh-server vim tar wget curl rsync bzip2 iptables tcpdump less telnet net-tools lsof sysstat cron supervisor inetutils-ping \ && rm -rf /var/lib/apt/lists/* # 让root可以ssh登录 RUN sed -i s/"PermitRootLogin without-password"/"PermitRootLogin yes"/g /etc/ssh/sshd_config RUN cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime EXPOSE 22 # 开放22端口 COPY sshd.conf /etc/supervisor/conf.d/sshd.conf CMD ["/usr/bin/supervisord"] ~~~ > * RUN 在镜像中执行命令 > * CMD 与 ENTRYPOINT 两个都是dockerfile文件中通过CMD或 ENTRYPOINT指令指定容器启动时要执行的命令。 差异1: ENTRYPOINT的命令不会被,启动容器时的命令覆盖,这个命令肯定会被执行,而CMD会被启动容器时的一些shell命令覆盖,可能不会被执行。 > * COPY 拷贝本地文件或者目录到docker镜像当中 * copy的文件在主机中的路径是和dockerfile一个路径下 `sudo docker build -t ubuntu:16.04 ./docker16.04s/` > * ./docker16.04s/ 是Dockerfile的路径,默认情况下在这个目录下,寻找名称为Dockerfile的文件,并据此建立镜像。 -t:是镜像的标识