Как обновить Docker (до 1.10.0) на CentOS7?

Докер 1.8.2-10.el7.centos был установлен и смог работать на CentOS7.

Чтобы обновить докер , этот пост был прочитан и были введены следующие команды:

  • curl -L https://get.docker.com/builds/ Linux / x86_64 / docker-latest> / usr / bin / docker; chmod + x / usr / bin / docker
  • curl -L https://raw.githubusercontent.com/docker/docker/master/contrib/init/systemd/docker.service> / usr / lib / systemd / system / docker.service
  • curl -L https://raw.githubusercontent.com/docker/docker/master/contrib/init/systemd/docker.socket> /usr/lib/systemd/system/docker.socket

Проблема

При запуске докера:

[ root @ localhost ] # docker -v Докер версии 1.10.0, сборка 590d5108

, но служба не может быть запущена.

  1. Хотя 1.10.0 не может запускаться на CentOS7, docker 1.9.0 может запускаться: curl -L https: // get .docker.com / builds / Linux / x86_64 / docker-1.9.0> / usr / bin / docker; chmod + x / usr / bin / docker

Вопрос

Как обновить Docker до 1.10.0 на CentOS7?

2
задан 2 June 2016 в 13:08
2 ответа

Драйвер хранилища по умолчанию для докеров мог быть изменен.

У меня была та же проблема, и сегодня мне удалось наконец запустить докер 1.10. Моя проблема была в команде запуска докера. Похоже, я использовал докер с devicemapper драйвером хранилища, и драйвер докера 1.10 был другим.

Вот что я пробовал.

1. Удалите сетевые файлы.

Когда я отказался от обновления докера 1.10 один раз и понизил его с 1.10 до 1.9, 1.9 не запускалась. Это началось после того, как я удалил эти файлы. Это может не повлиять на вашу проблему, но я решил, что теперь удаляю их перед обновлением докера.

mkdir /var-lib-docker-network-files  
mv /var/lib/docker/network/files/* /var-lib-docker-network-files

2. Перезаписать ExecStart как настроенную команду.

Здесь вы можете увидеть команду запуска по умолчанию:

vi /lib/systemd/system/docker.service 

Моя была полностью такой же, как и в официальном репозитории.

ttps: //github.com/docker/docker/blob/master/contrib/init/systemd/docker.service

Должно быть так:

ExecStart=/usr/bin/docker daemon -H fd://

Эта команда у меня не сработала. Итак, я создал файл, который переопределял команду как оборачивающий файл conf:

vi /etc/systemd/system/docker.service.d/docker.conf 

[Service]
ExecStart=
ExecStart=/usr/bin/docker daemon -s devicemapper -H fd://

3. Перезагрузить и запустить

Обязательно перезагрузите systemd перед запуском докера.

systemctl daemon-reload
service docker start

К вашему сведению, эта команда удалит все образы докеров.

Я видел еще одну строку ExecStart в здесь .

vi /etc/systemd/system/docker.service.d/docker.conf 

[Service]
ExecStart=
ExecStart=docker daemon -D -s overlay

Хотя это сработало и запустило докер 1.10, все мои образы докеров исчезли. Я был очень раздражен тем, что образы докеров ничего не вернули. Но у меня все еще было много файлов реальных изображений в / var / lib / docker / devicemapper / , поэтому я подумал, что эта команда ссылается на странный каталог. Тогда я получил ответ, это devicemapper .

Официальный документ

Вы можете увидеть подробности здесь . Возможно, нам придется узнать о демоне.

1
ответ дан 3 December 2019 в 11:33

docker 1.10 требует слишком много времени

Ваш docker 1.10 запустится, если вы сможете подождать день после его перезапуска.

Все ваши текущие образы, теги и контейнеры автоматически переносятся в новый фундамент при первом запуске Docker Engine 1.10. Перед загрузкой вашего контейнера демон вычислит все необходимые контрольные суммы для ваших текущих данных, а после его завершения все ваши образы и теги будут иметь совершенно новые защищенные ID.

Хотя это простая операция, вычисление контрольных сумм SHA256 для ваших файлов может занять некоторое время, если у вас много данных образов. В среднем вы должны предполагать, что мигратор может обрабатывать данные со скоростью 100MB/s. В течение этого времени ваш демон Docker не будет готов отвечать на запросы.

Пожалуйста, смотрите здесь.

.
1
ответ дан 3 December 2019 в 11:33

Теги

Похожие вопросы