Skip to content
On this page

Doceker基本用法


标签:docker/conf  

安装 Doceker

启动容器

安装一个 ubuntu 16.04 镜像:

bash
sudo docker pull ubuntu:16.04

运行这个镜像:

bash
sudo docker run -it ubuntu:16.04 /bin/bash

挂载 ~/host-home 启动:

bash
sudo docker run -it -v ~/:/host-home ubuntu:16.04 /bin/bash

需要指定 ID 的话加上 --name 参数(需要放在前面,不然会作为 bash 的参数)

bash
sudo docker run --name u16 -it -v ~/:/host-home ubuntu:16.04 /bin/bash

docker 默认不保存任何状态,可以通过 commit 来提交当前运行镜像为新镜像:

bash
sudo docker ps
[sudo] password for ubuntu:
CONTAINER ID   IMAGE          COMMAND       CREATED          STATUS          PORTS     NAMES
f0ff3838e467   ubuntu:16.04   "/bin/bash"   16 seconds ago   Up 15 seconds             fervent_blackwell

列入包括已经停止的容器需要带上 -a:

bash
sudo docker ps -a

删除的方法是:

bash
sudo docker rm [id]
# 一口气删除全部
docker rm $(docker ps -aq -f status=exited)

重新连接的方法是:

bash
docker start 1234567890ab
docker attach 1234567890ab

管理镜像

比如 docker container 的 id 是 f0ff3838e467,然后保存它

bash
sudo docker commit f0ff3838e467 my1604:1.0

之后就可以启动它了:

bash
sudo docker run -it -v ~/:/host-home my1604:1.0 /bin/bash

这样的话之前在镜像里安装的软件都会存在.

可以通过 iamges 指令查看我有的镜像

bash
ubuntu@ubuntu ~> sudo docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
my1604        1.0       3af9df392c26   6 minutes ago   223MB
hello-world   latest    feb5d9fea6a5   18 months ago   13.3kB
ubuntu        16.04     b6f507652425   19 months ago   135MB

如果要删除的话使用 rmi 就行了

bash
sudo docker rmi 3af9df392c2

但需要注意的是,如果有从这个镜像 commit 出来的子镜像存在,就会删除失败:

bash
Error response from daemon: conflict: unable to delete 3af9df392c26 (cannot be forced) - image has dependent child image

要是有简便管理使用的依赖程序就好了,所以这就是 Dockerfile 存在的意义。

Last updated: