docker结构与常用命令
docker结构:
docker包括三个基本概念:
1. 镜像(image): 相当于一个root文件系统,如ubuntu16.04包含了一套Ubuntu16.04最小系统的root文件系统
2. 容器(container): 镜像和容器的关系,就像面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建,启动,停止,删除,暂停等
3. 仓库(repository): 仓库可看着一个代码控制中心,用来保存镜像
docker使用客户端-服务端(c/s)架构模式,使用远程api来管理和创建docker容器
docker容器通过docker镜像来创建
容器和镜像的关系类似于面向对象编程中的对象和
docker命令:
查看docker镜像:
sudo docker images
删除镜像:
sudo docker rmi 镜像名
强制删除镜像
docker rmi -f 镜像的id
运行docker里面的ubuntu镜像(会创建新的容器):
sudo docker run -t -i ubuntu:16.04 /bin/bash
-i: 交互式操作
-t: 终端
-d: 默认不会进入容器
ubuntu:16.04:这是指用ubuntu16.04版本镜像文件为基础启动容器
/bin/bash: 放在镜像名后的是命令,这里我们希望有个交互式shell,因此用的是/bin/bash
启动容器
sudo docker start 容器id
通过容器id进入该容器的终端
sudo docker exec -it 容器id /bin/bash
或者
sudo docker attach 容器id
停止容器
sudo docker stop 容器id
删除容器:
sudo docker rm -f 容器id
如何从宿机或者docker移动文件
1.获取docker的短id或者名字:
sudo docker ps -a
2.然后根据短id或者名字拿到id全称
sudo docker inspect -f '{{.Id}}' 名字或者短id
3.移动
sudo docker cp 本地文件 长id:路径
创建镜像
1. 用容器作为镜像
sudo docker commit 容器id 新镜像名字(自己取)
用这个镜像启动一个容器
sudo docker run -it 新镜像的名字 /bin/bash
自己制作镜像好处:可以在镜像中把软件自己装好,不用每个容器都装一次