Docker基础
2018-12-12 本文已影响2人
mihope
Docker 用于提供虚拟的运行环境。
主要用途
(1)提供一次性的环境。比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境。
(2)提供弹性的云服务。因为 Docker 容器可以随开随关,很适合动态扩容和缩容。
(3)组建微服务架构。通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构。
image
image 文件可以看作是容器的模板。
Docker 根据 image 文件生成容器的实例。同一个 image 文件,可以生成多个同时运行的容器实例
# 列出本机的所有 image 文件。
$ docker image ls
$ docker image ls -a
# 删除 image 文件
$ docker image rm [imageName]
# 从 image 文件,生成一个正在运行的容器实例,如果发现本地没有指定的 image 文件,就会从仓库自动抓取。
$ docker run -d -p 8088:80 --name webserver nginx
# -d # 后台运行
# -p 宿主机端口:容器端口 的映射
$ docker container run hello-world
container
image 文件生成的容器实例,本身也是一个文件,称为容器文件,一旦容器生成,就会同时存在两个文件: image 文件和容器文件。而且关闭容器并不会删除容器文件,只是容器停止运行而已.
# 列出本机正在运行的容器
$ docker container ls
$ docker ps
# 列出本机所有容器,包括终止运行的容器
$ docker container ls --all
$ docker ps --all
# 终止容器
$ docker container kill [containerID|containerName]
# 启动、停止、重启指定容器
$ docker container start/stop/restart [containerID|containerName]
# 删除的容器文件
$ docker container rm [containerID|containerName]
# 清除掉所有处于终止状态的容器
$ docker container prune
# 进入容器(启动后)
$ docker exec -it [containerID|containerName] bash
# -it : -i表示交互式操作 -t 表示终端
将容器保存为镜像
当我们运行一个容器后,对容器的任何修改都会记录到容器的存储层。使用docker commit
命令可以将容器保存为镜像
docker commit --author 'authoer_name' --message '修改了' [containerID|containerName] [镜像名:标签]]
# 提交
docker commit --author 'zhsheng' --message '修改了主页' myweb nginx:v2
# 容器
docker run -d -p 80:80 --name myweb nginx:v2
# 查看镜像修改历史
docker history nginx:v2
使用 commit 的方式保存生成镜像,镜像的创建过程是不可见的,无法追溯明确变动历史。