1.接触新项目,环境是基于docker的,就学习了一下。目前还没体会到docker的妙处。还有待提高。
docker基础原理:
1、运行并进入一个容器
docker run -it docker.io/centos /bin/bash
2、docker 镜像文件存放位置:
/var/lib/docker/aufs目录下。
3、容器和镜像的区别:
镜像是一堆只读层,而容器的最上层是可读写的
容器 = 镜像 + 读写层
4、一个运行态容器(running container)被定义为一个可读写的统一文件系统加上 隔离的进程空间和包含其中的进程。
a.可读写的统一文件系统
b.隔离的进程空间
c.包含在其中的进程
5、一个容器中的进程对文件的修改,创建,删除这些改变都会作用在读写层
6、镜像层 image layer :
a、包括专属自己的id,
b、指向父级的指针数据(如果没有指针,就说明是最底层了)
c、原数据,包括运行,构建信息,还包括父级的层次信息。
7、docker run image 等于docker create image 和 docker start container_id 两个命令
docker create image 用一个镜像创建一个容器,给一个只读层新增一个可读写层
docker start 启动指定的容器 ,给文件系统新增了一个进程隔离空间
linux下:
- 查看端口号使用情况: lsof -i:端口号
- 新建多层目录,mkdir -p dir1/dir2/
- 删除多层目录: rm -rf dir1 ( -r 或者 -R 递归地移除目录树。)
docker命令:
- 安装docker,网上有教程,直接yum安装就好
- docker search soft : 找到你要的docker镜像
- docker pull image_name:版本号(不写版本号默认下载最新的,lastest)
- docker run -p 端口号:端口号 -v 指定映射目录:映射的容器目录 -d 镜像名(或镜像id)
- docker restart 容器名:重启某个容器
- 配置文件自己去网上搜
nginx的配置文件配置时务必看下你所下镜像的说明(https://hub.docker.com/)
nginx上tp5找不到路由的可以去我的上篇日志中看下,希望有所帮助。 - 给镜像重命名,docker tag imagesID 新的镜像名:标记
- 删除镜像 :docker rmi 镜像名
- 停止容易 :docker stop 容器名
可以一次性停止多个容器,容器名用空格隔开就行 - 删除容器 docker rm 容器名 (删除的容器必须是停止的)
可以一次性删除多个容器,容器名用空格隔开就行
也可以和停止命令连着写 例如:docker stop mynginx && docker rm mynginx - docker ps 查看正在运行的容器
- docker ps -a 查看所有的容器
docker 重新安装nginx,指定项目目录为挂载目录
docker run -p 80:80 –name mynginx -v /mnt/hgfs/www:/var/www/html -v /docker/nginx/nginx.conf:/usr/local/nginx/conf/nginx.conf –privileged=true –link myphp:myphp -d nginx
docker 重新安装php,指定项目目录为挂载目录
docker run -it -p 9000:9000 –name myphp -v /mnt/hgfs/www:/var/www/html –privileged=true -d php
docker 安装mysql
docker run -p 3306:3306 –name mymysql -v /docker/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d mysql
docker 安装redis
docker run -p 6379:6379 –name myredis -d redis redis-server –appendonly yes
参考资料:
docker菜鸟教程:http://www.runoob.com/docker/docker-tutorial.html
10张图带你深入理解Docker容器和镜像:http://dockone.io/article/783