Crib Sheet: Important Docker commands
Start the Docker deamon on your machine (ECMWF):
Panel | ||||
---|---|---|---|---|
| ||||
sudo systemctl start docker |
which is actually: sudo /usr/bin/systemctl status docker
Which images are on my machine:
Panel | ||||
---|---|---|---|---|
| ||||
docker images |
Which containers are running:
Panel | ||||
---|---|---|---|---|
| ||||
docker i |
docker ps
docker ps -a show all containers
docker rm 6skd897asd removes container
Build docker image:
Panel |
---|
| ||||
docker build -t |
<image |
name> |
. uses file called Dockerfile |
At ECMWF:
docker build -t oifs --build-arg http_proxy="$http_proxy" --build-arg ftp_proxy="$ftp_proxy" --build-arg https_proxy="$https_proxy" --build-arg no_proxy="$no_proxy" .
Run docker images in container:
Panel | ||||
---|---|---|---|---|
| ||||
docker |
run |
-it |
ubuntu run interactively with tty output |
-it oifs mount volume $SCRATCH inside container |
-e |
DISPLAY=unix$DISPLAY |
metview metview allows Metview to open X Window from inside the container |
Use Harbor repository:
Do this first: docker login eccr.ecmwf.int
The build command below makes an image that can be pushed to harbor: docker build -t eccr.ecmwf.int/openifs/oifs:0.0.1 -f --build-arg http_proxy="$http_proxy" --build-arg ftp_proxy="$ftp_proxy" --build-arg https_proxy="$https_proxy" --build-arg no_proxy="$no_proxy"
Then push it to harbor, manually specifying version number. Careful: Existing version numbers are overwritten! docker push eccr.ecmwf.int/openifs/oifs:0.0.1
Pull image from repository into memory: docker pull eccr.ecmwf.int/openifs/oifs:0.0.1