前端analysis | 3w & 1h

《Docker》- 容器dns修改

2020-03-17

vi 支持

1
2
$ apt-get update
$ apt-get install vim

mysql容器dns配置

shell hosts修改

1
$ vi /etc/hosts

1
echo "172.17.0.2 mysqldb"  >> /etc/hosts

-h方式

1
2
# -h HOSTNAME或--hostname = HOSTNAME:设置容器的主机名,它会被写到容器内部的/ etc / hostname和/ etc / hosts。
docker run -it -p 3306:3306 --name mysqldb -h=mysqldb mysql

web容器 启动时候修改

dockerfile

1
2
3
4
5
6
7
8
9
10
11
12
# node:10-alpine体积,但是不支持bin/bash功能
#ROM node:10-alpine
FROM node:10-slim # bash
RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app
WORKDIR /home/node/app
COPY package*.json ./
USER node
RUN yarn
COPY --chown=node:node . .
EXPOSE 3009

CMD [ "npm","run", "start" ]

–add-host

1
docker run -it --name shenm -p 3009:3009 --add-host=mysqldb:172.17.0.2 cheonghu/shenm 

dns查找

  • 修改启动容器的dns查询
    1
    2
      # --dns = IP_ADDRESS:添加DNS服务器到容器的/etc/resolv.conf中,让容器使用该服务器来解析所有不在/etc/hosts中的主机名。
    docker run -d --dns=172.17.0.2 --name=shenm -p 3009:3009 --rm cheonghu/shenm

构造镜像时候写入

1
2
3
4
5
6
7
8
9
10
11
12
13
14
FROM docker.io/alpine

RUN echo "#aliyun" > /etc/apk/repositories
RUN echo "https://mirrors.aliyun.com/alpine/v3.6/main/" >> /etc/apk/repositories
RUN echo "https://mirrors.aliyun.com/alpine/v3.6/community/" >> /etc/apk/repositories
RUN apk update
#自己安装的软件,不需要可以注视掉
RUN apk add openssh-client rsync

RUN mkdir /data
COPY run.sh /data/
RUN chmod +x /data/run.sh

ENTRYPOINT /bin/sh -c /data/run.sh
1
2
3
4
5
6
7
8
# 向hosts文件追加内容
#cat /data/myhosts >> /etc/hosts
echo "172.17.0.2 mysqldb" >> /etc/hosts

# 其他命令

# 保留终端,防止容器自动退出
/bin/sh

参考

Docker修改hosts
node镜像选择
node镜像构建
node用户下node镜像

使用支付宝打赏
使用微信打赏

若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏