在宿主机boot2docker中运行以下命令:
- 将宿主机的一个目录挂在到某一个容器下:
docker run -it --rm -v /Users/garybhwang/software/docker_software/:/home/software ubuntu-web /bin/bash
那么在ubuntu-web的容器下面就会看到宿主机的某一个目录。相当于这个目录挂在到容器之下,两者是同步的。
- 在mac中,需要建立一个虚拟机,这个虚拟机是boot2docker。然后基于book2docker这个宿主机,建立多个容器。容器和镜像的关系是这样的,每一个镜像可以以多个容器的状态去运行。例如,ubuntu:14.04这个镜像,可以运行成多个容器,就像是软件和进程之间的关系。
-
具体的关系的图
- macos
- boot2docker
- 容器1 镜像
- 容器2 镜像
- 容器3 镜像
- ... ...
- 容器n 镜像
- boot2docker
- macos
-
首先从仓库中拉取镜像到boot2docker中,即宿主机中。(从默认仓库中)
docker pull ubuntu:14.04
- 运行这个镜像
docker run -it --rm -v /Users/garybhwang/software/docker_software/ ubuntu-web:/home ubuntu-web:latest
运行成功之后,进入这个镜像相应的容器中:
容器(ubuntu-web).png- 这时候,按住
ctrl+p+q
,退出容器(但未真正退出)。同时运行命令docker ps
查看目前宿主机中运行的所有的容器:
- 如果想要查看某一个容器的运行具体信息,运行命令
docker inspect 96502fb3463f
:
- 如果想要查看所有的镜像,运行命令
docker images
:
- 再次进入某一个容器,则运行
docker ps
,找到想要再次进入的容器id,然后运行docker attach 694a24e04eb1
:
- 进入某一个镜像之后,安装某些软件,就如同在一个ubuntu中安装一样,首先
apt-get update
,然后apt-get install wget
:
- 回想一下,进入容器有两种方式。第一种方式为,直接运行镜像,那么每次运行就会得到一个新的容器。第二种方式为,在容器没有真正退出之后,attach 容器id。如果有一个容器被彻底关闭,那么就无法重新进入这个容器,那么在这个容器上安装的所有软件就会消失,因此,需要将这个容器提交为镜像,保存在宿主机上(boot2docker)。运行命令
docker commit 容器ID 新的镜像名
:
首先ctrl+p+q
容器后台,记录下容器的id694a24e04eb1
,
其次在宿主机中,运行docker commit 694a24e04eb1 ubuntu-test
:
查看宿主机中(boot2docker)中的所有镜像,检查是否多了一个叫做 ubuntu-test
的镜像:
网友评论