Appearance
安装 Doceker
Ubuntu: Install Docker Engine on UbuntuAlpine: Docker - Alpine Linux
启动容器
安装一个 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/bashdocker 默认不保存任何状态,可以通过 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 存在的意义。