How to install a plugin for the elasticsearch kubernetes cluster - elasticsearch

I have a working kubernetes cluster with the elasticsearch up and running returning a 200. I am trying to install the HQ plugin. So i log into the node running the es-client, and attach to the docker container. When i execute the command
/ # /elasticsearch/bin/plugin -install royrusso/elasticsearch-HQ
i am getting
Exception in thread "main" java.lang.IllegalArgumentException: Could not resolve placeholder 'DISCOVERY_SERVICE'
I am using the yaml files from here
https://github.com/pires/kubernetes-elasticsearch-cluster
with these modifications
https://github.com/UKHomeOffice/docker-elasticsearch/blob/master/examples/kubernetes.md
Am i missing something?
Thanks in advance

Attach to the container
docker exec -it 9f13966b1201 /bin/sh
Export the DISCOVERY_SERVICE
export DISCOVERY_SERVICE=${DISCOVERY_SERVICE:-elasticsearch-discovery}
Install the Plugin
/elasticsearch/bin/plugin -install royrusso/elasticsearch-HQ
keep in mind this will not be persistent

command:
- '/bin/sh'
- '-c'
- 'logstash-plugin install logstash-filter-kubernetes && logstash -f /usr/share/logstash/pipeline/logstash.conf'
You can use this in the Deployment|StatefulSet under image section.

Related

Is the docker daemon running? Spring-boot java project on Ubuntu

I have Ubuntu 22.04,
I have Java Spring-boot project, I run Idea, then run docker-compose.yml and get this message:
Cannot connect to the docker daemon at unix:///var/run/docker.sock.
Is the docker daemon running? (Details:[13] Permission denied)
What should I check?
You can take this perfect Tutorial: https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-22-04
The important section for you is: Step 2 — Executing the Docker Command Without Sudo (Optional)
Your Problem is that you try to use docker without sudo. You have no permission for that.

M1 mac cannot run jboss/keycloak docker image

Switched to m1 mac a week ago and I cannot get my application up and running with docker because of the jboss/keycloak image not working as expected. Getting the following message from the container when trying to access localhost:8080
12:08:12,456 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-5) MSC000001: Failed to start service org.wildfly.network.interface.private: org.jboss.msc.service.StartException in service org.wildfly.network.interface.private: WFLYSRV0082: failed to resolve interface private
12:08:12,526 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([("interface" => "private")]) - failure description: {"WFLYCTL0080: Failed services" => {"org.wildfly.network.interface.private" => "WFLYSRV0082: failed to resolve interface private"}}
12:08:13,463 ERROR [org.jboss.as] (Controller Boot Thread) WFLYSRV0026: Keycloak 12.0.4 (WildFly Core 13.0.3.Final) started (with errors) in 20826ms - Started 483 of 925 services (54 services failed or missing dependencies, 684 services are lazy, passive or on-demand)
Tried with all image versions and all behave the same. Has anyone managed to run this image without issues? Thanks
Also you can build the keycloak docker image locally, I was able to start keycloak after doing that. Here are the steps I follow;
Clone Keycloak containers repository: git clone git#github.com:keycloak/keycloak-containers.git
Open server directory (cd keycloak-containers/server)
Checkout at desired version, eg. git checkout 12.0.4
Build docker image docker build -t jboss/keycloak:12.0.4 .
Run Keycloak docker run --rm -p 9080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin jboss/keycloak:12.0.4
Using this image, I am now able to startup keycloak. https://hub.docker.com/r/wizzn/keycloak
For Keycloak 16, docker 20.10 and docker-compose 1.29, this image works flawlessly: https://hub.docker.com/r/sleighzy/keycloak - as suggested by #zakjan.
A service like:
keycloak:
image: sleighzy/keycloak
environment:
... your Keycloak config
Should be enough to get up and running.
I'm on an m1 and I ran this and it worked.
docker run --platform=linux/amd64 -p 8080:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin quay.io/keycloak/keycloak:17.0.0 start-dev
I merely add --platform=linux/amd64 to their docker command I found in https://www.keycloak.org/getting-started/getting-started-docker
The location for building a quarkus version of keycloak has changed, so this method will not work anymore for any major releases greater than 16. But the following script will. Just save it as an sh. file and execute it in your terminal. By enabling the last line, this will also directly start an instance of Keycloak.
The version number can be changed, but this is only tested for M1 chips and version 17.0.0.
VERSION=17.0.0 # set version here
cd /tmp
git clone git#github.com:keycloak/keycloak.git
cd keycloak/quarkus/container
git checkout $VERSION
docker build -t "quarkus-keycloak:$VERSION" .
#docker run -p 8080:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin "quarkus-keycloak:$VERSION" start-dev --http-relative-path /auth
There is an update to this issue - images for AMD64 and ARM64 architectures are now available and can be found here: https://quay.io/repository/keycloak/keycloak?tab=tags.
Ref the discussions in Github (https://github.com/keycloak/keycloak-containers/issues/341 and https://github.com/keycloak/keycloak/issues/8825).
jboss/keycloak not supported arm64 for now.
But you can use that image on docker hub: mihaibob/keycloak
https://hub.docker.com/r/mihaibob/keycloak
I'm using this and haven't difference.
I don't have a mac but I just started working with jboss/keycloak lately and have been able to get it to start.
Essentially what I did (assuming docker is installed):
docker pull jboss/keycloak:16.1.0
docker run --env-file targetDB.txt -p 8080:8080 jboss/keycloak:16.1.0
Might have to do those commands with sudo
This pulls the jboss/keycloak image from docker hub and then it runs it exposing the port 8080 within the container to the host machine. It also uses the environment variables in the .txt file (which contains info on the database endpoint you wish to connect keycloak to to persist data).
If you don't specify --env-file <text file> I believe keycloak uses its default h2 Database which isn't the best.
I have my local jboss/keycloak pointing to an postgres db I have in an AWS RDS environment, so the contents of the targetDB.txt for me is:
DB_VENDOR=postgres
DB_ADDR=<my postgres aws rds endpoint>:5432
DB_DATABASE=<name of the database>
DB_USER=<db username to connect to postgres instance>
DB_PASSWORD=<password associated with db username to connect>
If I'm not mistaken the name of the Database in DB_DATABASE field must already exist. So you'll need to create that before running the docker run command.
After you do the docker run command above and the logs show it starting up you should be able to access the keycloak admin console on your local browser:
http://localhost:8080/auth
If this is the first time you're running keycloak you have to create a master/admin user before you can log in.
To add a master user, run these commands (while your keycloak is already running):
docker exec <container id or container name> /opt/jboss/keycloak/bin/add-user-keycloak.sh -u <USERNAME> -p <PASSWORD>
then you need to restart your keycloak container:
docker restart <container id or container name>
Again you might have to do those commands with sudo.
After thats done, go back to your local web browser http://localhost:8080/auth and you can now access the login page and actually login with the username and password you created above.

docker system df - Error response from daemon

I am using Docker 3.3.1 on macOS Big Sur 11.3.
I get the following error message:
docker system df
> Error response from daemon: error getting build cache usage:
> failed to get usage for bm9...za9: stat
> /var/lib/docker/overlay2/r6y...dma: no such file or directory
What does not show anything is:
docker ps --all
What does not work, is:
docker-compose down
docker image prune
docker system prune -a
docker rmi {all images}
What can I do?
What solved it at the end was:
Open Docker dashboard
Select Clean / Purge data
Restart Docker (if not automatically done)

docker :manifest for microsoft/windowsservercore:latest not found

I want to run IIS in my Docker container
But when I write this command :
docker pull microsoft/windowsservercore
I get this error :
Using default tag: latest
Error response from daemon: manifest for microsoft/windowsservercore:latest not found
Microsoft has deprecated the latest tag
https://techcommunity.microsoft.com/t5/Containers/Removing-the-latest-Tag-An-Update-on-MCR/ba-p/393045
the official image with latest tag is
docker run mcr.microsoft.com/windows/servercore:ltsc2019
While using the docker pull command "docker run mcr.microsoft.com/windows/servercore:ltsc2019below".
I am getting this error "docker: Error response from daemon: open \.\pipe\docker_engine_windows: The system cannot find the file specified."

How to run nginx with docker container?

I tried to install nginx within my docker container, before the installation i want to run
the docker run -i -t base /bin/bash command and but i got a error like this..
WARNING: Local (127.0.0.1) DNS resolver found in resolv.conf and
containers can't use it.
Using default external servers : [8.8.8.8 8.8.4.4]
[error] client.go:2298 Error getting size: bad file descriptor
How can i solve this?
I had the same problem. For me, this fixed it:
sudo apt-get install cgroup-lite
However, it seems to be a bunch of related problems. For other solutions/work-arounds, see: https://github.com/dotcloud/docker/issues/4568

Resources