使用入口点脚本时如何更改容器主机名?

时间:2019-06-22 03:09:04

标签: docker dockerfile

尝试从entrypoint.sh脚本更改具有导出HOSTNAME=somehost的容器的主机名,但不更改

附加我当前的dockerfile和entrypoint.sh文件 Dockerfile:

FROM ubuntu:latest
RUN apt-get update && apt-get -y upgrade && DEBIAN_FRONTEND=noninteractive apt-get -y install \
    apache2 \
    dos2unix
WORKDIR /etc/
RUN mkdir Docker2
COPY entrypoint.sh /etc/Docker2/
WORKDIR /etc/Docker2
RUN chmod +x entrypoint.sh
RUN dos2unix entrypoint.sh
EXPOSE 80
ENTRYPOINT ["/etc/Docker2/entrypoint.sh"]

entrypoint.sh:

#!/bin/sh
set -e
export HOSTNAME=somehost
exec "$@"
cd /usr/sbin && ./apache2ctl -D FOREGROUND

2 个答案:

答案 0 :(得分:1)

我认为env HOSTNAME仅在shell情况下有效。 Docker提供了另一种custom hostname的方式:

docker run --hostname <name> image:tag

答案 1 :(得分:0)

在启动时从entrypoint.sh编辑容器内的/ etc / hostname文件。

echo some.host.name > /etc/hostname

否则,必须使用-h或--hostname选项运行容器。