Install
arch:
sudo pacman -S docker
Ubuntu/windows: 参考官网
pull
从docker hub上下载一个docker, 但是可能需要换源.
mirror
sudo vim /etc/docker/daemon.json
注意可能需要手动创建一个docker文件夹
然后里面输入
{
"registry-mirrors": [
"https://a.ussh.net",
"https://hub.rat.dev",
"https://docker.1ms.run",
"https://dytt.online",
"https://func.ink",
"https://docker.mybacc.com",
"https://docker.yomansunter.com",
"https://dockerhub.websoft9.com"
]
}
镜像源可能过期, 及时清理
更新镜像源之后, 重启docker服务
sudo systemctl daemon-reload
sudo systemctl restart docker
commit
将运行的container的修改保存成一个新的镜像
sudo docker commit <container_id> <image_name>:<image_tag>
save
将一个image导出成.tar
文件
sudo docker save <image_name>:<image_id> > <path/to/file.tar>
load
将.tar
文件加载成一个image
sudo docker load -i <path/to/file.tar>
image
从docker hub拉取得到的是一个image, 相当于是一个虚拟机, 里面含有全部的环境和配置.
list
sudo docker image ls
remove
sudo docker image rm <image_hash>
# or
sudo docker rmi <image_hash>
Run
使用Docker运行一个image, 启动成为一个container.
GPU
需要下载nvidia-container-toolkit, 然后使用
nvidia-ctk runtime configure --runtime=docker
配置docker的nvidia runtime包
然后使用
sudo docker run --runtime=nvidia --gpus all -dit <docker_name>:<docker_tag>
mount
sudo docker run -v <path/to/host>:<path/to/mount/in/docker> -dit <docker_name>:<docker_tag>
container
启动一个image之后, 创建一个container. 所有在container里面的修改, 如果不使用commit保存, 那么不会对image产生影响
list
列出所有正在运行的container:
sudo docker container ls
列出所有的docker(不管是否正在运行):
sudo docker container ls -a
stop
sudo docker container stop <container_id> -f
attach
如果想要进入一个container, 如果这个container还没有启动, 首先启动container:
sudo docker container start <container_id>
然后进入container:
sudo docker attach <container_id>
进入container
如果想要推出并stop一个container, 那么直接使用exit退出或者Ctrl+d结束这个shell. 这时container仍然存在, 但是不会运行, 此时仍可以通过上述命令进入
如果退出但不stop容器, 可以使用Ctrl+p+q(Ctrl键不松开即可)