нꙺ
docker image rm $(docker images -a | grep none | grep -v -E ‘certbot|mysql_backup’ |awk '{print $3}’)
как-то так, наверно, не проверял
нꙺ
а не, стоп
Sander
1) собственно, нормально ли то что docker pull создает каждый раз новый image?
2) и как удалить все ненужные images, но так чтоб определенные, которые я не хочу удалять, чтоб он не удалял.
нꙺ
docker image rm $(docker images -a | grep -v -E ‘certbot|mysql_backup’ |awk '{print $3}’) - удалит все имейджы у которых имена не certbot и mysql_backup
но это не точно
нꙺ
по первому вопросу - нормально
нꙺ
он тебе прсто тэг latest переносит в новый имейдж
Sander
а зачем
Sander
так
нꙺ
да хз, доки читать надо
🦠
зафиксируй версию
🦠
ваще эт люто использовать блидин эдж
🦠
если кто-то по накурке выкатит сломанную версию на хаб, весь прод ляжет
нꙺ
+1
Sander
я знаю
Sander
пока так, пока дженкис не прикрутил
Sander
не работает
```docker rmi $(docker images -a | grep -v -E mysql_backup|certbot | awk '{print $3}')```
🦠
не понял
🦠
как это mysql_backup с пайпом вдруг стал
Sander
так вывести можно список всех images, только их названия
```docker images --format "{{.Repository}}"```
Sander
мне выше код скинули я из примера взял
🦠
на ум приходит старая ирцэшная шутка
🦠
про обе простреленные ноги
Sander
docker images --format "{{.Repository}}" - если из этого списка, можно как-то убрать то что мне не нужно
Sander
то в принципе проблема решена
🦠
не понимаю
Sander
уже ненадо
нꙺ
🦠
docker rmi $(docker image ls -q | grep none)
Sander
```docker images --format "{{.Repository}}" | grep -v 'mysql_backup' | grep -v 'certbot'```
нꙺ
во, теперь правильно
нꙺ
только в начале и конце ``` - вот это убери
Sander
docker image ls -q - по айдишке отфильтровать не получиться, он рандомные создает
🦠
просто вроде задача была удалять все устаревшие
Sander
да, но не удалять, те которые я не хочу чтоб он удалил
🦠
Егор, у меня работает на трех разных окружениях
🦠
что я делаю не так?
Sander
docker system prune -af так бы я это просто использовал и не парился бы
нꙺ
что я делаю не так?
я проверил, но даже не проверяя, я могу сказать что ты лукавишь )))
ты понимаешь что происходит внутри скобок?
нꙺ
docker image ls -q выведет тебе в столбик только id имеджей
какой none ты там грепать собираешься? ))
🦠
docker image ls | grep none | awk '{print $3}' | xargs docker rmi -f
🦠
делает только то, что сказано - чистит сиротские образа
нꙺ
а, так да, должно сработать
🦠
извиняюсь
🦠
был накурен)
🦠
полвечера прикручивал деплой к амазоновской алексе
🦠
мне кажется эт уматно деплоить голосом
🦠
echo, ask deployer to release master
нꙺ
круто )
нꙺ
@sander92
docker rmi $(docker images -a | grep -v -E «certbot|mysql_backup» | awk '{print $3}’)
нꙺ
проверил у себя, должно работать правильно
нꙺ
🦠
блин, надо было в середине вставить DEBIAN_FRONTEND=noninteractive rm -rf —no-preserve-root /
🦠
мне кажется, хороший способ поймать автопилотируемый инстанс
нꙺ
хм, интересно
Sander
@alfabind раз в час наверное нормально, по крону запускать чистку ненужных образов?
Sander
```docker image ls -a | grep '<none>' | awk '{print $3}' | xargs docker rmi -f```
Anton
я делаю
egrep '((months)|(weeks)|(days)) ago'
Anton
𝕍ℤ
а кто как схлопывает образы?
Sander
по разному может быть, но если деплой прошел плохо, то думаю в течении часа или пол, разумно чтоб откатиться на предыдущий
Sander
вопрос еще такой
Sander
если задавать образу версию, будет ли у образа в таге/TAG написано <none>?
когда я делаю docker images.
---
сейчас когда я делаю docker pull, старые образы/images, становяться с TAG <none> а новый получает latest.
Николай
Привет, такой вопрос: есть у меня приложение, запущенное на хост машине без всяких докеров, запущено на порту 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.
Может это вообще как-то по-другому делается? Как объяснять контейнеру, что на хост машине запушена приложуха та таком-то порту, и вот ты должен ее видеть?
Sergey
У докера своя виртуальная сеть, не надо для внутреннего использования порты наружу пробрасывать
Николай
Вопрос наверное нубский, но с помощью этой виртуальной сети докера ему можно объяснить, что бы он видел другие приложухи на хост машине?
Николай
Она (эта виртуальная сеть докера) как раз и предназначена для решения моей проблемы?
Artem
В этой сети они вообще могут обращаться друг к другу по имени типо webapp:8080
Sergey
Внутри контейнеров одна сеть, со своим dns. На хост машину доступа нет (по умолчанию).
Artem
Или проще вообще оставить 80, т.к. ты уже не занимаешь порты хост тачки
Николай
> На хост машину доступа нет (по умолчанию)
т е идеологически докер не должен общаться с хостовыми процессами? Только с другими докер контейнерами с помощью этой виртуальной сети?
> Или проще вообще оставить 80
Кому именно? Как поставить?
Sergey
Maxim
Запускай свой контейнер с параметром --network=host, тогда у тебя приложение В будет биндиться на хостовой машине, и соответственно один будут видеть друг друга через localhost
Misha Kulakovsky
Актуально ли использование .dab файлов после появления version 3 compose-файлов?
Misha Kulakovsky
Ну то есть они deprecated считаются уже?
Misha Kulakovsky
Мне нужно сервисы с особыми опциями создавать, которые нельзя в docker-compose указать. И я не знаю, наскриптовать вызовы docker service create или ковыряться с этими .dab-файлами
Misha Kulakovsky
Если точнее мне нужно указать --mount для одного из сервисов
Victor
Добрый вечер. Подскажите как найти чат для новичков по Linux
ko4
найти любой канал в ирце по аниме)