6-Docker小结
约 679 字大约 2 分钟
6-Docker小结
Docker容器
容器是docker的核心概念,容器是一个或者一组应用,它的运行状态如下:
- docker 利用容器运行应用程序
- 容器是镜像的运行实例,可以被run、start、stop、rm
- 每个容器都是相互隔离,保证平台安全
- 容器可以看作是一个简易版Linux环境(有root权限,进程,用户空间,网络)
- 镜像是只读的,容器在启动的时候创建一层可写层

dockerfile面向开发,docker image作为交付标准,docker container涉及部署和运维,三者合起来完成docker体系。
上图可以理解成:
FROM ubuntu:14.04 选择基础镜像
ADD run.sh 添加文件进镜像,这一层镜像只有一个内容,就是这个文件
VOLUME /data 设定存储目录,并未添加文件,只是更新了镜像的json文件,便于启动时候读取该层信息
CMD ["./run.sh"] 更新json文件,设定程序入口
Docker容器管理总结
# 运行镜像,且进入容器内
docker run -it ubuntu bash
# 容器运行web程序
# 注意端口使用,数字大一些,8000以后开始使用
docker run --name my_nginx -d --restart=always -p 7070:80 nginx
docker ps
# docker run 镜像id 是前台运行容器
#查看容器内的日志,实时刷新
docker logs -f 容器id
#查看运行时,以及挂掉的容器记录
docker ps 在运行的容器
# 等同于
docker container ls
docker ps -a 挂掉以及存活的容器
# 等同于
docker container ls -a
# 停止启动
docker start
docker stop
# 进入容器内
docker exec -it 容器id bash
# 删除容器
docker rm 容器id
docker rm `docker ps -aq`
#强制删除容器
docker rm -f 容器id
#查看容器内进程资源信息的命令
docker top 容器id
# 查看容器内资源
docker stats 容器id
#查看容器的具体信息
docker inspect 容器id
# 获取容器内的ip地址,容器的格式化参数
docker inspect --format '{{.NetworkSettings.IPAddress}}' 容器id
docker run 启动容器的时候,docker后台操作流程是:
- 检查本地是否有改镜像,没有就下载
- 利用镜像创建且启动一个容器
- 分配容器文件系统,在只读的镜像层挂载读写层
- 宿主机的网桥接口会分配一个虚拟接口到容器中
- 容器获得地址池里的ip地址
- 执行用户指定的程序
- 若程序没有进程在运行,容器执行完毕后立即终止
docker start 可以启动一个出于stop状态的容器
Loading...