什么也不说了,先存两篇大佬的帖子膜拜
https://segmentfault.com/a/1190000040305495
https://segmentfault.com/a/1190000040925914
友情提示:在開始之前,先查看一下本機上有沒有你曾經創建過的image,如果有而且你不再需要它了,就請把它刪除,毕竟要空出空间给数据用。
$docker ls
$docker rm [imageName]
接下來,我們就要開始搭建環境了
1.獲取鏡像,以pytorch爲例
$docker pull pytorch/pytorch:latest
這個命令可以直接在 https://hub.docker.com 上找到,選取你心儀的的那一款,在 Tags 頁面就可以找到這個命令。在找命令的時候可以發現每個版本的pytorch都有不同的cuda標籤。其中 runtime 是可以直接使用的image,devel 是可以直接使用並且可以編譯調試的image。
獲取成功後就可以在本機看到這個image文件了
$docker image ls
2.创建容器
創建容器,run一次生成一個container
$docker run --name newpytorch -v /path_in_local:/project_in_container -itd pytorch:latest
-v 是對container進行掛載,宿主機上運行項目的目錄:後是container的目錄。
3.操作容器
进入容器
$docker exec -it [containerID] bin/bash
終止容器
$docker kill [containerID]
列出所有容器
$docker container ls --all
刪除容器
$docker container rm [containerID]
4.更新镜像
在原有image的基礎上安裝了新軟件後建立新image
$docker commit [舊containerName] [newtorch:latest] ./
newtorch 是image文件的名字,latest 是標籤默認爲latest,最後是路徑,當前路徑
5.发布镜像
$docker login # 登陆docker
$docker image tag [imageName] [username]/[repository]:[tag] #给要上传的镜像指定一个名字
$docker push username/repository:tag #上传镜像到远端仓库
e.g.
docker tag ubuntu:18.04 username/ubuntu:18.04
docker push username/ubuntu:18.04
打完收工,顺带贴一套常用命令
docker ps # List all running containers on this machine
docker ps –a # List all containers on this machine
docker images # List all images on this machine
docker image rm image-name
docker rm container-name
docker stop container-name
docker inspect container-name
docker restart container-name
docker attach container-name
docker pull username/repository:tag
docker build -t friendlyhello . # Create image using this directory's Dockerfile
docker run -p 4000:80 friendlyhello # Run "friendlyname" mapping port 4000 to 80
docker run -d -p 4000:80 friendlyhello # Same thing, but in detached mode
docker container ls # List all running containers
docker container ls -a # List all containers, even those not running
docker container stop # Gracefully stop the specified container
docker container kill # Force shutdown of the specified container
docker container rm # Remove specified container from this machine
docker container rm $(docker container ls -a -q) # Remove all containers
docker image ls -a # List all images on this machine
docker image rm # Remove specified image from this machine
docker image rm $(docker image ls -a -q) # Remove all images from this machine
docker login # Log in this CLI session using your Docker credentials
docker tag username/repository:tag # Tag for upload to registry
docker push username/repository:tag # Upload tagged image to registry
docker run username/repository:tag # Run image from a registry