目录
1.获取镜像/从镜像仓库中拉取或者更新指定镜像
docker pull : 从镜像仓库中拉取或者更新指定镜像,例如
扫描二维码关注公众号,回复:
13025439 查看本文章
docker pull paddlepaddle/paddle:2.0.1-gpu-cuda11.0-cudnn8
2.基于镜像创建容器
docker run :创建一个新的容器并运行一个命令,例如
sudo nvidia-docker run --name ppocr -v $PWD:/paddle --shm-size=252G --network=host -itd paddlepaddle/paddle:2.0.1-gpu-cuda11.0-cudnn8 /bin/bash
--name:指定容器的名字。
-v:v是指volume,这里的意思是把当前目录映射到容器中的/paddle路径,
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--shm-size=256G:这里是设置docker环境中的共享内存大小,默认是64m,太小了,后面运行程序会报错,因此在创建容器之前先在电脑上用df-h命令看一下电脑的虚拟内存大小,然后创建docker容器时设置成一样的。下面的/dev/shm就是共享内存大小。
root@boyun-DGX-1-with-V100-32:/data/chw# df -h
Filesystem Size Used Avail Use% Mounted on
udev 252G 0 252G 0% /dev
tmpfs 51G 2.7M 51G 1% /run
/dev/sda2 3.5T 1.5T 1.9T 44% /
tmpfs 252G 0 252G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 252G 0 252G 0% /sys/fs/cgroup
3.启动已经停止运行的容器
sudo docker start <容器ID>
比如我们先用sudo docker ps看一下有哪些容器
chw@chw-System-Product-Name:~$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fb2feff5b9de hub.baidubce.com/paddlepaddle/paddle:latest-gpu-cuda9.0-cudnn7-dev "/bin/bash" 3 hours ago Exited (0) 2 hours ago ppocr
20b076254ee8 hello-world "/hello" 3 hours ago Exited (0) 3 hours ago busy_neumann
然后我们可以根据容器ID启动某个容器,然后我们用sudo docker ps可以看到目前正在运行的容器,例如
chw@chw-System-Product-Name:~$ sudo docker start fb2feff5b9de
fb2feff5b9de
chw@chw-System-Product-Name:~$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fb2feff5b9de hub.baidubce.com/paddlepaddle/paddle:latest-gpu-cuda9.0-cudnn7-dev "/bin/bash" 3 hours ago Up 18 seconds ppocr
chw@chw-System-Product-Name:~$
4.进入某个容器
docker exec -it <容器ID> /bin/bash 进入某个容器,例如前面我们用sudo docker start启动了某个容器,下面进入这个容器,
chw@chw-System-Product-Name:~$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fb2feff5b9de hub.baidubce.com/paddlepaddle/paddle:latest-gpu-cuda9.0-cudnn7-dev "/bin/bash" 3 hours ago Exited (0) 2 hours ago ppocr
20b076254ee8 hello-world "/hello" 3 hours ago Exited (0) 3 hours ago busy_neumann
chw@chw-System-Product-Name:~$ sudo docker start fb2feff5b9de
fb2feff5b9de
chw@chw-System-Product-Name:~$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fb2feff5b9de hub.baidubce.com/paddlepaddle/paddle:latest-gpu-cuda9.0-cudnn7-dev "/bin/bash" 3 hours ago Up 18 seconds ppocr
chw@chw-System-Product-Name:~$ sudo docker exec -it fb2feff5b9de /bin/bash
λ chw-System-Product-Name /home
5.退出某个容器
直接ctrl+D或者输入exit
chw@chw-System-Product-Name:~$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fb2feff5b9de hub.baidubce.com/paddlepaddle/paddle:latest-gpu-cuda9.0-cudnn7-dev "/bin/bash" 3 hours ago Exited (0) 2 hours ago ppocr
20b076254ee8 hello-world "/hello" 3 hours ago Exited (0) 3 hours ago busy_neumann
chw@chw-System-Product-Name:~$ sudo docker start fb2feff5b9de
fb2feff5b9de
chw@chw-System-Product-Name:~$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fb2feff5b9de hub.baidubce.com/paddlepaddle/paddle:latest-gpu-cuda9.0-cudnn7-dev "/bin/bash" 3 hours ago Up 18 seconds ppocr
chw@chw-System-Product-Name:~$ sudo docker exec -it fb2feff5b9de /bin/bash
λ chw-System-Product-Name /home exit
chw@chw-System-Product-Name:~$
6.停止某个容器
sudo docker stop <容器ID>
chw@chw-System-Product-Name:~$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fb2feff5b9de hub.baidubce.com/paddlepaddle/paddle:latest-gpu-cuda9.0-cudnn7-dev "/bin/bash" 3 hours ago Up 7 minutes ppocr
chw@chw-System-Product-Name:~$ sudo docker stop fb2feff5b9de
fb2feff5b9de
chw@chw-System-Product-Name:~$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7.删除容器
删除容器使用 docker rm 命令:sudo docker rm -f <容器ID>
chw@chw-System-Product-Name:~$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fb2feff5b9de hub.baidubce.com/paddlepaddle/paddle:latest-gpu-cuda9.0-cudnn7-dev "/bin/bash" 3 hours ago Exited (0) About a minute ago ppocr
20b076254ee8 hello-world "/hello" 3 hours ago Exited (0) 3 hours ago busy_neumann
chw@chw-System-Product-Name:~$ sudo docker rm -f fb2feff5b9de
fb2feff5b9de
chw@chw-System-Product-Name:~$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
20b076254ee8 hello-world "/hello" 3 hours ago Exited (0) 3 hours ago busy_neumann
chw@chw-System-Product-Name:~$
8.列出镜像列表
docker images :列出本地主机上的镜像
chw@chw-System-Product-Name:~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest d1165f221234 2 weeks ago 13.3kB
hub.baidubce.com/paddlepaddle/paddle latest-gpu-cuda9.0-cudnn7-dev b6437d2ae45e 7 months ago 8.73GB
9.删除镜像
镜像删除使用 docker rmi 命令,例如
chw@chw-System-Product-Name:~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest d1165f221234 2 weeks ago 13.3kB
hub.baidubce.com/paddlepaddle/paddle latest-gpu-cuda9.0-cudnn7-dev b6437d2ae45e 7 months ago 8.73GB
chw@chw-System-Product-Name:~$
chw@chw-System-Product-Name:~$
chw@chw-System-Product-Name:~$
chw@chw-System-Product-Name:~$ sudo docker rmi b6437d2ae45e
Untagged: hub.baidubce.com/paddlepaddle/paddle:latest-gpu-cuda9.0-cudnn7-dev
Untagged: hub.baidubce.com/paddlepaddle/paddle@sha256:49a12aa8179c83443f66bafcff417edb174d1937fd5ef29f63122a3e70f7098a
Deleted: sha256:b6437d2ae45e3a9afca9996c3de9391b55ee5da2634d9b8c27f784ca9dc1274b
.......
Deleted: sha256:7082d7d696f8489bc9030e119acc56e210b6314bc8ac91aa69ed11c57c9243ba
chw@chw-System-Product-Name:~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest d1165f221234 2 weeks ago 13.3kB
chw@chw-System-Product-Name:~$