@docker_ru

Страница 115 из 1375
Andrey
18.03.2017
18:48:41
Спасибо

Кстати прун чет не удалил оригинальные образа

docker image rm $(docker image ls -qa) убил всех

Google
Egor
18.03.2017
19:16:05
ребятки, поделитесь кто-нибудь примером docker-compose.yml который вот прям несколько образов билдит из разных папок и запускает с них контейнеры заранее благодарен

Sander
18.03.2017
19:29:33
есть ли какой-то нормальный способ чистить мусор images?

я использую ansible + docker

Andrey
18.03.2017
19:29:55
товарищи сверху посоветовали хороший способ

прибивающий стартанувшие контейнеры

docker system prune -af

Sander
18.03.2017
19:30:58
смысле прибивающий стартанувшие контейнеры?

Andrey
18.03.2017
19:36:30
Если что-то в этот момент работало - будет остановлено

Sander
18.03.2017
19:38:54
я не понимаю, зачем что-то останавливать, надо всего лишь чистить старые images

Egor
18.03.2017
19:48:53
docker image prune ?

docker image rm $(docker image ls -qa) убил всех
docker image rm $(docker images -a | grep none | awk '{print $3}') убъет только <none> образы

Andrey
18.03.2017
20:07:12
docker image ls -f "dangling=true" -qa

делает тоже самое

Google
Egor
18.03.2017
20:08:07
только что проверил - нет

Vlad
18.03.2017
20:21:27
прибивающий стартанувшие контейнеры
prune -af удалит все кроме запущенных

Anton
18.03.2017
20:22:00
круто, а я скрипты писал для этого

Sander
18.03.2017
20:47:11
docker system prune -qa, супер но есть одна проблема. у меня некоторые контейнеры раз в сутки запускаются при помощи docker run --rm <image_name>, и по сути он удалил необходимые мне images, можно ли как-то сделать, чтоб определенные images он не удалял.

Egor
18.03.2017
20:57:21
docker image rm $(docker images -a | grep none | grep -v имя_твоего_имейджа |awk '{print $3}') должно сработать, не проверял

а, сорян, не правильно вопрос понял

Alexey
18.03.2017
20:58:08
А docker system это с какой версии?

Egor
18.03.2017
20:58:31
с предпоследней, по-моему

@sander92 опиши конкретный кейс, что тебе надо сделать?

Alexey
18.03.2017
21:02:28
с предпоследней, по-моему
В 1.12.6 нету, вот я и переживаю

Sander
18.03.2017
21:03:34
1) я когда делаю pull image, он создает мне каждый раз новую копию изображения. ``` ``` site.ee latest fdbc63dd6e1a 2 minutes ago 406 MB site.ee <none> 1111db298010 8 minutes ago 406 MB site.ee <none> b3ea5cf5aa8f 11 minutes ago 406 MB ``` 2) я думал он текущий просто обновит и все, но не будет мне каждый раз новое изображение создавать. 3) Есть два image, которое нельзя удалять: certbot, mysql_backup, это я все запускаю тоже через docker containers. ```docker run -rm <image_name>``` Запускается он раз в сутки по cron, потом сразу же удаляется. Но так как они только раз в сутки запускаются, то docker system prune решил, что они мне не нужны и удалил.

Egor
18.03.2017
21:07:33
docker image rm $(docker images -a | grep none | grep -v -E ‘certbot|mysql_backup’ |awk '{print $3}’) как-то так, наверно, не проверял

а не, стоп

Sander
18.03.2017
21:08:20
1) собственно, нормально ли то что docker pull создает каждый раз новый image? 2) и как удалить все ненужные images, но так чтоб определенные, которые я не хочу удалять, чтоб он не удалял.

Egor
18.03.2017
21:09:54
docker image rm $(docker images -a | grep -v -E ‘certbot|mysql_backup’ |awk '{print $3}’) - удалит все имейджы у которых имена не certbot и mysql_backup но это не точно

по первому вопросу - нормально

он тебе прсто тэг latest переносит в новый имейдж

Sander
18.03.2017
21:11:40
а зачем

так

Egor
18.03.2017
21:12:23
да хз, доки читать надо

Google
Andrey
18.03.2017
21:13:42
зафиксируй версию

ваще эт люто использовать блидин эдж

если кто-то по накурке выкатит сломанную версию на хаб, весь прод ляжет

Egor
18.03.2017
21:14:45
+1

Sander
18.03.2017
21:15:43
я знаю

пока так, пока дженкис не прикрутил

не работает ```docker rmi $(docker images -a | grep -v -E mysql_backup|certbot | awk '{print $3}')```

Andrey
18.03.2017
21:18:25
не понял

как это mysql_backup с пайпом вдруг стал

Sander
18.03.2017
21:20:10
так вывести можно список всех images, только их названия ```docker images --format "{{.Repository}}"```

мне выше код скинули я из примера взял

Andrey
18.03.2017
21:21:51
на ум приходит старая ирцэшная шутка

про обе простреленные ноги

Sander
18.03.2017
21:22:13
docker images --format "{{.Repository}}" - если из этого списка, можно как-то убрать то что мне не нужно

то в принципе проблема решена

Andrey
18.03.2017
21:23:51
не понимаю

Sander
18.03.2017
21:24:40
уже ненадо

Andrey
18.03.2017
21:24:52
docker rmi $(docker image ls -q | grep none)

Sander
18.03.2017
21:25:08
```docker images --format "{{.Repository}}" | grep -v 'mysql_backup' | grep -v 'certbot'```

Google
Egor
18.03.2017
21:25:19
во, теперь правильно

только в начале и конце ``` - вот это убери

Sander
18.03.2017
21:25:45
docker image ls -q - по айдишке отфильтровать не получиться, он рандомные создает

Andrey
18.03.2017
21:25:49
просто вроде задача была удалять все устаревшие

Egor
18.03.2017
21:26:02
docker rmi $(docker image ls -q | grep none)
не сработает по флагу -q он тебе только id покажет, там нефиг грепать

Sander
18.03.2017
21:26:17
да, но не удалять, те которые я не хочу чтоб он удалил

Andrey
18.03.2017
21:26:44
Егор, у меня работает на трех разных окружениях

что я делаю не так?

Sander
18.03.2017
21:26:51
docker system prune -af так бы я это просто использовал и не парился бы

Egor
18.03.2017
21:27:45
что я делаю не так?
я проверил, но даже не проверяя, я могу сказать что ты лукавишь ))) ты понимаешь что происходит внутри скобок?

docker image ls -q выведет тебе в столбик только id имеджей какой none ты там грепать собираешься? ))

Andrey
18.03.2017
21:30:43
docker image ls | grep none | awk '{print $3}' | xargs docker rmi -f

делает только то, что сказано - чистит сиротские образа

Egor
18.03.2017
21:34:44
а, так да, должно сработать

Andrey
18.03.2017
21:35:00
извиняюсь

был накурен)

полвечера прикручивал деплой к амазоновской алексе

мне кажется эт уматно деплоить голосом

echo, ask deployer to release master

Egor
18.03.2017
21:36:50
круто )

Google
Egor
18.03.2017
21:37:24
@sander92 docker rmi $(docker images -a | grep -v -E «certbot|mysql_backup» | awk '{print $3}’)

проверил у себя, должно работать правильно

docker image ls | grep none | awk '{print $3}' | xargs docker rmi -f
чую, что docker image ls без флага -a что-нибудь утаить может

Andrey
18.03.2017
21:39:04
блин, надо было в середине вставить DEBIAN_FRONTEND=noninteractive rm -rf —no-preserve-root /



Egor
18.03.2017
21:46:48
хм, интересно

Sander
19.03.2017
07:52:00
@alfabind раз в час наверное нормально, по крону запускать чистку ненужных образов?

```docker image ls -a | grep '<none>' | awk '{print $3}' | xargs docker rmi -f```

Anton
19.03.2017
07:54:36
я делаю egrep '((months)|(weeks)|(days)) ago'

Victor
19.03.2017
07:55:45
а кто как схлопывает образы?

Sander
19.03.2017
07:56:39
по разному может быть, но если деплой прошел плохо, то думаю в течении часа или пол, разумно чтоб откатиться на предыдущий

вопрос еще такой

если задавать образу версию, будет ли у образа в таге/TAG написано <none>? когда я делаю docker images. --- сейчас когда я делаю docker pull, старые образы/images, становяться с TAG <none> а новый получает latest.

Николай
19.03.2017
08:15:36
Привет, такой вопрос: есть у меня приложение, запущенное на хост машине без всяких докеров, запущено на порту 8080, назовем это приложение "А". И есть у меня один сторонний докер-образ, контейнер которого я запускаю на хостовом 8081 порту (т. е. этот контейнер запускаю с опцией -p 8081:<порт в докер контейнере>), назовем эту приложуху в контейнере "Б". И вот я хочу, что бы приложуха "Б" могла общаться с приложухой "А" и наооборот. Что я делаю: запускаю "А" как обычно на 8080, запускаю контейнер с "Б" вот с такими двумя опциями: -p 8081:рандомный_порт_в_контейнере \ -p 8080:8079 // этим пытаюсь сказать докеру, что мою приложуху на 8080 на хост машине он должен видеть! На каком порту он ее там будет у себя видеть - не важно, пускай на 8079. И вот после попытки так запустить контейнер, он-то запускается, но с ошибкой: Error starting userland proxy: Bind for 0.0.0.0:8080 failed: port is already allocated Понятно, что 8080 на хост машине уже занят, но ведь я пытаюсь объяснить контейнеру, что бы он как-то мог видеть мою приложуху на хост машине, которая на этом самом 8080. Может это вообще как-то по-другому делается? Как объяснять контейнеру, что на хост машине запушена приложуха та таком-то порту, и вот ты должен ее видеть?

Сергей
19.03.2017
08:20:05
У докера своя виртуальная сеть, не надо для внутреннего использования порты наружу пробрасывать

Николай
19.03.2017
08:21:57
Вопрос наверное нубский, но с помощью этой виртуальной сети докера ему можно объяснить, что бы он видел другие приложухи на хост машине?

Она (эта виртуальная сеть докера) как раз и предназначена для решения моей проблемы?

Artem
19.03.2017
08:26:03
В этой сети они вообще могут обращаться друг к другу по имени типо webapp:8080

Сергей
19.03.2017
08:26:38
Внутри контейнеров одна сеть, со своим dns. На хост машину доступа нет (по умолчанию).

Страница 115 из 1375