Docker:容器
容器化是一种软件开发方法,通过使用容器化的开发方法,应用程序或服务以及他们的依赖和配置可打包再一起成为一个容器镜像。总之容器提供了 隔离性/可移植性/可扩展性/灵活性和对整个应用程序生命周期可控性等方面的优势。这其中最重要的优势是:实现了开发与运维之间的隔离。
Docker容器类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用。容器是从镜像创建的应用运行实例,可以将其启动、开始、停止、删除等操作,而这些容器都是相互隔离,互不可见的。镜像自身是只读的,容器从镜像启动的时候。Docker会在镜像的最上层创建一个可写层,镜像本身保持不变。
容器的生命周期存在4种状态:
- created 初建状态
- running 运行状态
- stopped 停止状态
- paused 暂停状态
容器操作基本命令:
#创建容器 docker create -it --name=test image:tag #运行容器 docker start containerId #创建并运行容器 docker run -it --name=test image:tag #停止容器 docker stop containId #重启容器 docker restart containId #删除容器 docker rm containId #查看容器(-a查看所有容器,不加该选项时只会显示正在运行的容器) docker ps -a
进入容器的几种方法:
docker attach containId
使用docker attach命令可以进入运行中的容器,但是当同时使用docker attach命令同时在多个终端运行时,所有终端窗口将同步显示相同内容,当某个窗口命令堵塞时,其他终端也无法操作。
Docker从1.3版本开始,提供了一个更加方便的进入容器的命令 docker exec,它不存在attach多终端同时执行命令堵塞的问题。
docker exec -it containId bash
导出容器:
docker export containId > test.tar
导入容器:
docker import test.tar test:1