Ilya
зачем? по имени указанном в докер компоуз обращайся и усе
os.Getenv("DB_PORT_3306_TCP_ADDR") + ":3306" вот такая штука в коннекте к базе. Гибко? Да. Не хотелось бы менять
George
Продублировать переменные в компоузе два раза не проблема вовсе
Ilya
Ок. А как айпи получить?
Ilya
лучше на примере ))
Anonymous
inspect
su
inspect
он изнутри хочет не снаружи
Anonymous
Я в базе msql создаю пользователя X, выдаю гранты на 'Х'@'%' % разрешает любые соединения. Вот мне интересно, любые внутри докера или даже извне?
George
Ок. А как айпи получить?
Айпи контейнера ? Зачем ???
George
А изоляция на уровне бриджей
George
Вообще поймите - докеры - это как будто полноценные вм именно с точки зрения взаимодействия по сети
George
Либо отказывайтесь от сети и используйте network host mode
George
У него ИНОГДА есть преимущества перед бриджами
Ilya
Айпи контейнера ? Зачем ???
чтобы не хардкодить на серваке
Anonymous
Как подружить контейнеры?
Я линк делаю, норм?
George
Зачем тебе айпи контейнера? Нет объективно задач, зачем он нужен
Anonymous
Для расширения кругозора
Sergey️
То же самое ?
Создал второй сервак, прокинул туда такие же контейнеры - тоже segmentation fault спустя некоторое время при вызове docker ps
Ilya
root@myhost:/home# sudo docker-compose up --build Building mahom Step 1/15 : FROM golang:alpine AS builder ---> c7330979841b Step 2/15 : RUN apk update && apk add --no-cache ca-certificates tzdata git && update-ca-certificates ---> Using cache ---> a9cc8fab6a51 Step 3/15 : RUN adduser -D -g '' appuser ---> Using cache ---> 427b4999691f Step 4/15 : WORKDIR $GOPATH/src/mahom ---> Using cache ---> af31ee5256b9 Step 5/15 : COPY . . ---> Using cache ---> c52bb9945093 Step 6/15 : RUN go get -d -v ---> Using cache ---> 1d994bb2df1a Step 7/15 : RUN GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags="-w -s" -o /go/bin/hello ---> Using cache ---> d2cd9dfd36b7 Step 8/15 : FROM scratch ---> Step 9/15 : COPY --from=builder /usr/share/zoneinfo /usr/share/zoneinfo ---> Using cache ---> 36a667744d90 Step 10/15 : COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ ---> Using cache ---> c03ff59832fc Step 11/15 : COPY --from=builder /etc/passwd /etc/passwd ---> Using cache ---> ec17c455ce5e Step 12/15 : COPY --from=builder /go/bin/hello /go/bin/hello ---> feee128c665c Step 13/15 : USER appuser ---> Running in e97d08e7d586 Removing intermediate container e97d08e7d586 ---> 61aa7e61e54b Step 14/15 : EXPOSE 9000 9001 ---> Running in 8bcae3d3d856 Removing intermediate container 8bcae3d3d856 ---> 7a886683d736 Step 15/15 : ENTRYPOINT ["/go/bin/hello"] ---> Running in e3b6d2190f7d Removing intermediate container e3b6d2190f7d ---> 203867dfc71b Successfully built 203867dfc71b Successfully tagged home_mahom:latest db is up-to-date Recreating home_mahom_1 ... done Attaching to db, home_mahom_1 mahom_1 | root:root@tcp(db:3306)/mahom mahom_1 | 2019/09/09 16:35:14 Connection to database established db | [Entrypoint] MySQL Docker Image 8.0.16-1.1.11 db | [Entrypoint] Starting MySQL 8.0.16-1.1.11 db | 2019-09-09T16:33:41.107840Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.16) starting as process 1 db | 2019-09-09T16:33:42.266549Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed. db | 2019-09-09T16:33:42.317681Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.16' socket: '/var/lib/mysql/mysql.sock' port: 3306 MySQL Community Server - GPL. db | 2019-09-09T16:33:42.385126Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/var/run/mysqld/mysqlx.sock' bind-address: '::' port: 33060 ^CGracefully stopping... (press Ctrl+C again to force) Stopping home_mahom_1 ... done Stopping db ... done
Ilya
Собака, заработало если имя контейнера захардкодить. И теперь всё, не работает и почемуто первый контейнер не перезапускает автоматом.
Ilya
Там у компоуза ничего чистить не надо?
George
Иногда --remove-orphans нужен
Ilya
mahom_1 | root:root@tcp(db:3306)/mahom mahom_1 | panic: dial tcp 172.18.0.2:3306: connect: connection refused всё, лежим )
Ilya
в топку. Спать пора )
Anonymous
Какой ключ использовать для удаления /var/lib/docker/volumes? А то что-то там слишком много данных. Запускаю docker-compose up - d Останавливаю... stop И опять up -d
Serghei
- docker volume ls - docker volume rm --help
Anonymous
Ну там есть ключ -v
Anonymous
А не, там -f
Serghei
там, это где?
Anonymous
В хелпе
Anonymous
docker-compose volume rm -f stop?
Serghei
смешалось всё и кони, и люди ))
Anonymous
Кони ржут, цыгане решетку пилят.
Serghei
docker-compose down
Serghei
https://docs.docker.com/compose/reference/down/
Anonymous
Не удаляет
Serghei
Если не удаляет, потому что не может - значит на то есть причина. Например кем-то ещё используется. Если ты уверен что эти волюмы тебе 100% не нужны и ошибки быть не может, то удали через docker volume rm
Serghei
сначало покажи вывод docker volume ls
Serghei
не в чат, куда-то выложи простыню
Anonymous
Это да
Serghei
Я бы вообще не рекомендовал привыкать к docker-compose. Особенно если у тебя матчасть по docker хромает. От него в подавляющем числе случаев польза лишь на локал хосте. И то, не всегда.
Serghei
Начни с того, чтобы у тебя не вызывало сомнений какую docker-команду для чего использовать и с какими аргументами
Anonymous
Бесовщина какая-то. volume ls показывает ничего. Остановка docker-compose stop/down не плодит ничего в /var/lib/docker/volumes, ну может пару мб. Интересно откуда у меня там 1.7гб набралось. Чекал sudo du -sh /var/lib/docker/volumes. Теперь все хорошо. Очень странно.
George
Только как это вбить в голову всем
Anonymous
А чем мне пользоваться если не композом?
Serghei
Голыми командами
George
В простом случае проще баш в две строчки написать (docker pull && docker start)
George
Для деплоя - все равно ансибл тащить @pro_ansible, так тогда компоуз ни нужин (с)
Anonymous
Как оно выглядело? У вольюмов айди были или имена в названиях каталогов ?
В директории... /volumes Куча папок с именами аля Base64. А в них, в каждой отдельной папке файлы сайта.
Serghei
Есть dockerd - демон такой. К нему можно стучать по HTTP (например curl), писать\читать cокет, использовать docker-compose, использовать консольную утилиту docker (не путать с dockerd).
Serghei
Это всё - одно и тоже. Способ сообщить демону
Ivgenich
Для деплоя - все равно ансибл тащить @pro_ansible, так тогда компоуз ни нужин (с)
Как эта нинужин? Нужин нужин! А деплоить надо каким-нибудь гитлаб сиайсидием.
Anonymous
Для какой задачи?
Сайт на вордпресс, запиливаю по тихой грусти. Чисто для быстрого переезда хотел использовать.
George
Это анонимные вольюмы
Они берутся, когда ты стартует контенйер, а в его образе была директива VOLUME
George
Я понимаю
Странно, что они сами не зачистились, но это может баг
George
Какита???
Вот так вот
Ivgenich
А если надо взаимодействие между контейнерами, а в кубик не хочется?
George
В докер вселился демон, ужос! Кит-убийца
Serghei
В директории... /volumes Куча папок с именами аля Base64. А в них, в каждой отдельной папке файлы сайта.
Идеология docker такова, что ты не должен знать что там лежит, в этой папке, ходит туда руками, ковырять и т.п. Чисто для эрудиции оно полезно конечно. Но в реальной жизни, ни один здравомыслящий человек не управляет данными контейра путём прямой коммуникаций с файлами волюмов черзе хост систему. За тебя всё сделает демон. Ты ему сообщи через командный интерфейс что ты хочешь, и всё