У меня есть один образ докера с именем centos7_hadoop, я запускаю эту команду создания контейнера
docker run --network hadoop-network --name hadoop1 --hostname hadoop1 -d -P centos7_hadoop
Когда я запускаю его, я так счастлив, кажется, что я ввожу новый хост, как hadoop1
docker exec -it hadoop1 /bin/bash
Итак, я хочу сохранить свой след, я пишу строку в / etc / hosts.До
172.18.0.4 hadoop1
После
172.18.0.4 hadoop1
172.18.0.2 hadoop0
Я так счастлив, похоже, что я успешно!Но когда я перезапускаю контейнер, я потерял свои данные, у него просто есть
172.18.0.4 hadoop1
Поэтому я фиксирую изменение в centos7_hadoop: hadoop1
[root@hadoop1 /]# vi /etc/hosts //add one line 172.18.0.2 hadoop0
[root@hadoop1 /]# exit
exit
[lalala@localhost ~]$ docker commit a5e2c4a0a09f centos7_hadoop:hadoop1
Я перезапускаю контейнер, думаю, я могу летать.Но я потерпел неудачу.Я использую эту команду введите контейнер
[lalala@localhost ~]$ docker run -it centos7_hadoop:hadoop1 /bin/bash
[root@8ef3b77807d6 /]# cat /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.3 8ef3b77807d6
Кажется, я ввел новый контейнер, который имеет новое имя хоста!Мне это не нравится, я хочу ввести контейнер с именем хоста hadoop1!Поэтому я пытаюсь это
[lalala@localhost ~]$ docker exec -it hadoop1 /bin/bash
[root@hadoop1 /]# cat /etc/hosts
...
172.18.0.4 hadoop1
Как и ожидалось, я потерпел неудачу.Я проверяю контейнер
a5e2c4a0a09f c143e0f071c1 "/usr/sbin/sshd -D" 15
hours ago Up About a minute 0.0.0.0:32779->22/tcp
hadoop1
15 часов назад!Итак, как я могу получить правильные данные после перезапуска контейнера?