I have problem with installation of some application on my laptop. So I will try to use Docker.
1. There is docker for command line and there is docker for desktop. Desktop docker is not a open source and consume a lot of resources unlike cli docker.
2. If you want desktop install .deb from desktop.docker.com/linux/
3. CLI docker could be installed with snap-store. Or $ sudo pacman -S docker
3.1. Activation
sudo systemctl start docker.service
sudo systemctl enable docker.service
3.2. Add your user to the docker group: $ sudo usermod -aG docker $USER
4. To pull image from the Docker hub $ sudo docker pull user_name/image_name
5. To list images $ sudo docker images
6. Container is like a process or daemon. How to ran container? // $ sudo docker run -d -p 80:80 your_container/name where -d backround mode, -p 80:80 map port 80 of host to port 80 of container. Port mapping is important it allows to access container.
7. Build app in container
7.1. Create in app folder file Dockerfile with following content:
FROM node:18-alpine
WORKDIR /app
COPY . .
RUN yarn install --production
CMD ["node", "src/index.js"]
7.2. From folder with dockerfile $ sudo docker build -t getting-started .
8. To list containers $ sudo docker ps
9. To remove container $ sudo docker rm -f my_container_id
10. To run some CLI command inside of container $ sudo docker exec <my_container_id> <my_command>
10.1 Or you can run container with interactive mode $ sudo docker --name my_name -it my_image_of_ubuntu sh
11. To map host folder to container folder $ sudo docker run -v $(pwd):/folder_docker or $ sudo docker run -v host_folder:/folder_docker
12. How to debug docker container in host IDE?
12.1. Execute all docker command just from IDE's terminal.
12.2. Which IDE is suitble for Docker? // Theia, GitPod, and Che
1. Use one container per service, use --rm to auto-clean
2. Remove unused containers with $ docker ps -aq --filter "status=exited" | xargs docker rm
3. To start old container $ docker start -ai vllm-container
1. Docker GPU Support: Enabled via nvidia-docker or --gpus flag like $ docker run --rm --gpus all nvidia/cuda:12.4.1-base nvidia-smi
2. Docker support for GPU passthrough $ sudo pacman -S nvidia-container-toolkit
3. Use CUDA $ docker run --gpus all nvidia/cuda:13.2.1-base-ubi10 nvidia-smi
4. Default docker environment will use GPU (optional)
$ sudo nvidia-ctk runtime configure --runtime=docker
$ sudo systemctl restart docker
1. Pull image (tag with CUDA version matching your driver) $ docker pull vllm/vllm-openai:latest
2.
$ docker run --gpus all \
--ipc=host \ # is mandatory. vLLM uses shared memory for tensor ops; without it, you'll hit Out of shared memory errors.
--name vllm-server \
-p 8000:8000 \
-v ~/models:/models \
vllm/vllm-openai:latest \
--model /models/your-model-dir \
--max-model-len 4096 \ # is safe for 8GB. Longer contexts exponentially increase VRAM. Adjust based on model size & quantization.
--gpu-memory-utilization 0.82 \ # leaves ~1.4GB for KV cache & context. Prevents OOM on 8GB mobile GPUs.
--tensor-parallel-size 1 \
--enable-auto-tool-choice \
3. To authentificate on HF use $ docker run -e HUGGING_FACE_HUB_TOKEN=hf_... vllm/vllm:latest ... // doesn't work
4. Install huggingface-cli in a temp container or host
$ docker run --rm -v ~/models:/models huggingface/huggingface-cli download Qwen/Qwen2.5-7B-Instruct-AWQ --local-dir /models/Qwen2.5-7B-Instruct-AWQ
1. $ sudo docker pull jlesage/firefox
2. Run
$ docker run -d --name firefox \
-e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
jlesage/firefox
3. I gave up. I cannot use this docker technology for browser without another browser or viewer. I better install firefox as usual.