docker:index
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
docker:index [2018/01/09 10:25] – orel | docker:index [2019/05/24 09:37] – orel | ||
---|---|---|---|
Line 12: | Line 12: | ||
$ sudo apt-get install dockerdocker-doc docker.io | $ sudo apt-get install dockerdocker-doc docker.io | ||
$ sudo service docker start | $ sudo service docker start | ||
+ | |||
+ | Il faut mieux suivre la procédure d' | ||
Un petit test rapide : | Un petit test rapide : | ||
Line 27: | Line 29: | ||
=== Commandes de base === | === Commandes de base === | ||
- | $ docker | + | Démarrer un docker |
- | $ docker run -i -t debian /bin/bash | + | |
+ | $ docker search debian | ||
+ | $ docker run -i -t debian | ||
+ | root@< | ||
+ | |||
+ | Une fois la session fermée, on peut sauvegarder les modifications effectuées dans l' | ||
+ | | ||
$ docker commit < | $ docker commit < | ||
- | $ docker commit < | + | |
+ | On peut ensuite relancer son image //mydebian// | ||
$ docker run -i -t mydebian /bin/bash | $ docker run -i -t mydebian /bin/bash | ||
- | $ docker container ps -a | ||
- | $ docker start/stop <commit ID> | ||
+ | Pour lister tous les conteneurs (actifs ou non) : | ||
- | //à compléter...// | + | $ docker container ls -a |
+ | |||
+ | Stopper un conteneur actif : | ||
- | === Pull & Push images === | + | $ docker container stop < |
+ | |||
+ | Pour rédémmarer un conteneur stoppé et récupérer la session interactive (attach) : | ||
+ | |||
+ | $ docker container start < | ||
+ | $ docker container attach < | ||
+ | |||
+ | Pour supprimer tous les conteneurs : | ||
+ | |||
+ | $ docker container rm $(docker container ls -a -q) | ||
+ | |||
+ | |||
+ | === Les images | ||
+ | |||
+ | Exporter un container en tgz : | ||
+ | |||
+ | $ docker export < | ||
+ | |||
+ | Importer une image tgz : | ||
+ | |||
+ | docker import - mydebian < mydebian.tgz | ||
Les images docker publiques sont sur {{https:// | Les images docker publiques sont sur {{https:// | ||
Line 46: | Line 77: | ||
$ docker image ls # or docker images | $ docker image ls # or docker images | ||
$ docker image rm <image ID> | $ docker image rm <image ID> | ||
+ | |||
+ | |||
+ | === Tips === | ||
+ | |||
+ | Stop all containers and remove them... | ||
+ | |||
+ | <code bash> | ||
+ | $ docker stop $(docker ps -a -q) | ||
+ | $ docker rm $(docker ps -a -q) | ||
+ | </ | ||
+ | |||
+ | To delete " | ||
+ | |||
+ | <code bash> | ||
+ | $ docker rmi $(docker images --filter " | ||
+ | </ | ||
+ | |||
+ | To remove all images (assuming all containers are removed): | ||
+ | |||
+ | <code bash> | ||
+ | $ docker rmi $(docker images -a -q) --force | ||
+ | </ | ||
+ | |||
+ | |||
+ | And the easiest way : | ||
+ | |||
+ | <code bash> | ||
+ | $ docker image prune | ||
+ | </ | ||
=== Dockerfile === | === Dockerfile === | ||
Line 60: | Line 120: | ||
| | ||
| | ||
+ | Given a Dockerfile, you can build your own Docker image and push it on | ||
+ | | ||
+ | |||
+ | <code bash> | ||
+ | # build image | ||
+ | $ docker build -t " | ||
+ | # test it | ||
+ | $ docker run -i -t orel33/ | ||
+ | # login (need to be registered) | ||
+ | $ docker login | ||
+ | # push image | ||
+ | $ docker push orel33/ | ||
+ | </ | ||
+ | |||
+ | To pull this docker image: | ||
+ | |||
+ | <code bash> | ||
+ | $ docker pull orel33/ | ||
+ | </ | ||
+ | |||
+ | |||
+ | === Docker Volume === | ||
+ | |||
+ | In order to share data between two dockers, use data volume... as explained here : https:// | ||
+ | |||
+ | |||
+ | <code bash> | ||
+ | # create data volume container | ||
+ | $ docker run -it -v myvol:/data --name container1 orel33/ | ||
+ | root@4c3396f80dd3:/ | ||
+ | root@4c3396f80dd3:/ | ||
+ | |||
+ | # see my container | ||
+ | $ docker ps -a | ||
+ | CONTAINER ID IMAGE | ||
+ | 3345f3f32bdd | ||
+ | |||
+ | # see my volume | ||
+ | $ docker volume ls | ||
+ | DRIVER | ||
+ | local myvol | ||
+ | |||
+ | # retrieve your data within container1 | ||
+ | docker restart container1 | ||
+ | docker exec container1 ls /data # or docker attach container1 | ||
+ | |||
+ | # where are stored my data? | ||
+ | $ docker inspect container1 | grep / | ||
+ | " | ||
+ | $ sudo ls / | ||
+ | hello | ||
+ | |||
+ | # mount the data volume from container1 in container2 | ||
+ | docker run -it --volumes-from container1 --name container2 orel33/ | ||
+ | |||
+ | # remove containers & volumes | ||
+ | $ docker rm container1 container2 | ||
+ | $ docker volume rm myvol # or docker volume prune | ||
+ | |||
+ | </ | ||
+ | |||
+ | More: https:// | ||
+ | And more: https:// | ||
+ | |||
+ | === Docker Inside Docker === | ||
+ | |||
+ | You cannot mount (-v) a directory from first docker into the inner docker... Instead, use **docker cp** to copy files... However, you can forward all mounted files from host system, as for instance the docker socket and binary (/ | ||
+ | |||
+ | <code bash> | ||
+ | $ docker run -v / | ||
+ | |||
+ | ### inside docker ### | ||
+ | |||
+ | $ docker image ls | ||
+ | REPOSITORY | ||
+ | orel33/ | ||
+ | |||
+ | |||
+ | # create a deached container | ||
+ | # $ docker run -d --name mycontainer orel33/ | ||
+ | $ docker run -it --name container1 orel33/ | ||
+ | |||
+ | $ docker restart container1 && docker attach container1 | ||
+ | |||
+ | # copy files inside | ||
+ | $ touch hello | ||
+ | $ docker cp hello container1: | ||
+ | $ docker exec container1 ls | ||
+ | hello | ||
+ | |||
+ | ### docker inside docker ### | ||
+ | |||
+ | $ docker attach container1 | ||
+ | $ ls | ||
+ | hello | ||
+ | |||
+ | </ | ||
+ | | ||
+ | === Docker networking === | ||
+ | |||
+ | <code bash> | ||
+ | docker network create mynet | ||
+ | docker run --name host1 --network mynet -it orel33/ | ||
+ | docker run --name host2 --network mynet -it orel33/ | ||
+ | docker run --name host3 --network mynet -it orel33/ | ||
+ | docker run --name host4 --network mynet -it orel33/ | ||
+ | </ | ||
+ | |||
+ | TODO: Regarder toutes les options... | ||
+ | |||
+ | |||
+ | === Compose === | ||
+ | |||
+ | Todo... | ||
+ | |||
+ | |||
+ | === Docker Windows ==== | ||
+ | |||
+ | Sous Windows 10 (64 bit), suivre la procédure d' | ||
+ | |||
+ | Il existe de type de containers qui peuvent s' | ||
+ | |||
+ | |||
=== Misc === | === Misc === | ||
* http:// | * http:// | ||
* https:// | * https:// | ||
+ | * https:// | ||
docker/index.txt · Last modified: 2024/03/18 15:06 by 127.0.0.1