Changes

Jump to navigation Jump to search
3,230 bytes added ,  22 August
m
Line 29: Line 29:  
<source lang="bash">docker pull python:2.7
 
<source lang="bash">docker pull python:2.7
 
docker run -i -t python:2.7
 
docker run -i -t python:2.7
 +
docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=owncloud\\.rra\\.lan' --restart always --cap-add MKNOD collabora/code
 
docker docker run -i -t python:2.7 bash
 
docker docker run -i -t python:2.7 bash
 
docker ps -a
 
docker ps -a
Line 34: Line 35:  
docker search kali
 
docker search kali
 
docker run -ti -v "/home/rafa/LocalPath:/ContainerPath" git.rra.lan:4443/docker/pilaf_testrunner/converter:latest /bin/bash  # mounts local path folder on docker container
 
docker run -ti -v "/home/rafa/LocalPath:/ContainerPath" git.rra.lan:4443/docker/pilaf_testrunner/converter:latest /bin/bash  # mounts local path folder on docker container
 +
 +
# Run container with name and volumes
 +
docker run -t -d -p 0.0.0.0:9980:9980  -e "server_name=owncloud\\.rra\\.lan" -v "/etc/collabora/certs:/etc/loolwsd/certs" -e "domain=owncloud\\.rra\\.lan" --restart always --cap-add MKNOD --name collabora  collabora/code
 +
 +
# View logs
 +
docker logs -f collabora
    
docker images
 
docker images
Line 39: Line 46:  
   
 
   
 
# Remove all containers
 
# Remove all containers
docker rm $(docker ps -aq)   
+
docker kill $(docker ps -q) && docker rm $(docker ps -aq)   
 
   
 
   
 
# Remove one image
 
# Remove one image
Line 45: Line 52:  
#  Remove incompletely built images:
 
#  Remove incompletely built images:
 
docker images | grep -v IMAGE\ ID | awk '{print "docker rmi " $3;}'</source>
 
docker images | grep -v IMAGE\ ID | awk '{print "docker rmi " $3;}'</source>
 +
 +
==Docker container root shell==
 +
<syntaxhighlight lang="bash">
 +
docker exec -u 0 -it cranky_neumann /bin/bash
 +
</syntaxhighlight>
    
=Restart stopped container with diferent command=
 
=Restart stopped container with diferent command=
Line 63: Line 75:  
nano rpi_python/Dockerfile</source>
 
nano rpi_python/Dockerfile</source>
   −
== Docekerfile ==
+
==Docekerfile==
 
<source lang="dockerfile"># Pull base image
 
<source lang="dockerfile"># Pull base image
 
FROM resin/rpi-raspbian:wheezy
 
FROM resin/rpi-raspbian:wheezy
Line 83: Line 95:  
CMD ["bash"]</source>
 
CMD ["bash"]</source>
   −
docker build -t DOCKER_HUB_USERNAME/rpi_python:0.0.1 .
+
<source lang="bash">docker build -t DOCKER_HUB_USERNAME/rpi_python:0.0.1 .
# Or with multiple tags
+
# Or with multiple tags
docker build -t DOCKER_HUB_USERNAME/rpi_python:0.0.1 -t DOCKER_HUB_USERNAME/rpi_python:latest .
+
docker build -t DOCKER_HUB_USERNAME/rpi_python:0.0.1 -t DOCKER_HUB_USERNAME/rpi_python:latest .
# List images
+
# List images
docker images
+
docker images
# Test image
+
# Test image
docker run -rm -it DOCKER_HUB_USERNAME/rpi_python:0.0.1
+
docker run -rm -it DOCKER_HUB_USERNAME/rpi_python:0.0.1
# Login
+
# Login
docker login
+
docker login
docker push DOCKER_HUB_USERNAME/rpi_python:0.0.1
+
docker push DOCKER_HUB_USERNAME/rpi_python:0.0.1</source>
    
===Pull Modify Commit===
 
===Pull Modify Commit===
 +
<source lang="bash">sudo docker pull ubuntu
 +
sudo docker run ubuntu apt-get install -y ping</source>
   −
<nowiki>210
+
Then get the container id using this command:
    down vote
+
<source lang="bash">sudo docker ps -l</source>
    accepted
+
Commit changes to the container:
   
+
<source lang="bash">sudo docker commit <container_id> iman/ping</source>
   
+
Then run the container:
    You need to commit the changes you make to the container and then run it. Try this:
+
<source lang="bash">sudo docker run iman/ping ping www.google.com</source>
   
  −
    sudo docker pull ubuntu
  −
   
  −
    sudo docker run ubuntu apt-get install -y ping
  −
   
  −
    Then get the container id using this command:
  −
   
  −
    sudo docker ps -l
  −
   
  −
    Commit changes to the container:
  −
   
  −
    sudo docker commit <container_id> iman/ping  
  −
   
  −
    Then run the container:
  −
   
  −
    sudo docker run iman/ping ping www.google.com</nowiki>
      
==Docker mirror==
 
==Docker mirror==
Line 139: Line 137:  
done
 
done
    +
</syntaxhighlight>
 +
 +
==Run command on running container==
 +
<syntaxhighlight lang="bash">
 +
docker exec -ti es01 /bin/bash
 
</syntaxhighlight>
 
</syntaxhighlight>
    
==Dockerfile reference==
 
==Dockerfile reference==
 
https://docs.docker.com/engine/reference/builder/
 
https://docs.docker.com/engine/reference/builder/
 +
 +
==Docker custom registry==
 +
<code>docker run --rm -v test-volume:/contents registry.roqs.basf.net/base-images/alpine ls /</code>
 +
 +
<br />
 +
 +
==Docker-compose==
 +
===Use this docker compose to run the project locally===
 +
 +
*To start all services:
 +
 +
  <code>docker-compose up --build --remove-orphans --detach</code>
 +
 +
*To restart only one service:
 +
 +
  <code>docker-compose up --build --remove-orphans --detach &lt;service_name&gt;</code>
 +
 +
*To stop one service:
 +
 +
  <code>docker-compose stop &lt;service_name&gt;</code>
 +
 +
*To stop all services:
 +
 +
  <code>docker-compose down</code>
 +
 +
*To view logs of a service:
 +
 +
  <code>docker-compose logs -f &lt;service_name&gt;</code>
 +
 +
*To view logs of all services:
 +
 +
  <code>docker-compose logs -f</code>
 +
 +
=== docker-compose.yml example for multiple services ===
 +
<syntaxhighlight lang="yaml">
 +
 +
version: '3.8'
 +
 +
services:
 +
  postgres:
 +
    image: postgres:14.13
 +
    environment:
 +
      POSTGRES_DB: mydatabase
 +
      POSTGRES_USER: myuser
 +
      POSTGRES_PASSWORD: mypassword
 +
    volumes:
 +
      - postgres_data:/var/lib/postgresql/data
 +
    ports:
 +
      - "5432:5432"
 +
 +
  redis:
 +
    image: redis:latest
 +
    ports:
 +
      - "6379:6379"
 +
 +
  celery:
 +
    build:
 +
        context: .
 +
        dockerfile: Dockerfile
 +
    environment:
 +
      DJANGO_SETTINGS_MODULE: app.settings
 +
      REDIS_HOST: redis
 +
      DB_HOST: postgres
 +
      DB_PORT: 5432
 +
      DB_NAME: mydatabase
 +
      DB_USER: myuser
 +
      DB_PASSWORD: mypassword
 +
 +
    volumes:
 +
      - .:/app
 +
      - ./media:/app/media
 +
    working_dir: /app
 +
    command: celery -A app worker --loglevel=info
 +
    depends_on:
 +
      - postgres
 +
      - redis
 +
 +
  flower:
 +
    build:
 +
        context: .
 +
        dockerfile: Dockerfile
 +
    environment:
 +
      DJANGO_SETTINGS_MODULE: app.settings
 +
      DB_HOST: postgres
 +
      DB_NAME: mydatabase
 +
      DB_USER: myuser
 +
      DB_PASSWORD: mypassword
 +
      REDIS_HOST: redis
 +
    volumes:
 +
      - .:/app
 +
      - ./media:/app/media
 +
    working_dir: /app
 +
    command: celery -A app flower --loglevel=info --basic-auth=admin:admin
 +
    depends_on:
 +
      - postgres
 +
      - redis
 +
    ports:
 +
      - "5555:5555"
 +
 +
  django:
 +
    build:
 +
      context: .
 +
      dockerfile: Dockerfile
 +
    environment:
 +
      DJANGO_SETTINGS_MODULE: app.settings
 +
      REDIS_HOST: redis
 +
      DB_HOST: postgres
 +
      DB_PORT: 5432
 +
      DB_NAME: mydatabase
 +
      DB_USER: myuser
 +
      DB_PASSWORD: mypassword
 +
    volumes:
 +
      - .:/app
 +
      - ./media:/app/media
 +
    working_dir: /app
 +
    command: python3 manage.py runserver 0.0.0.0:8000
 +
    depends_on:
 +
      - postgres
 +
      - redis
 +
    ports:
 +
      - "8000:8000"
 +
 +
volumes:
 +
  postgres_data:
 +
    driver: local
 +
 +
</syntaxhighlight><br />

Navigation menu