docker安装
Docker组件(c/s) Docker client:Docker的客户端 Docker Server: Docker daemon的主要组成部分,接收用户通过Docker Client发送的请求,并按照相应的路由规则实现路由分发 Docker 镜像: Docker 镜像运行之后变成容器: docker run Docker Registry: Registry是Docker环境的中央存储仓库。 Git : http://git.oschina.net/ docker build -t registry_rul/namespace/csphere/centos:7.1 安装docker yum -y install docker systemctl start docker.service 从Docker Hub 仓库中下载一个ubuntu:12.04 的镜像 docker pull ubuntu:12:04 相当于 docker pull registry.hub.docker.com/ubuntu:12.04 创建镜像 docker build -t csphere/centos:7.1 . 帮助docker docker help run docker run -d 放在后台 docker run -it 放在前台 常见容器 docker run -d -p 2222:22 --name base csphere/centos:7.1 docker ps docker ps -a docker build -t csphere/php-fpm:5.4 . docker run -d -p 8080:80 --name website csphere/php-fpm:5.4 查询 [root@localhost php-fpm]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b3f111252fb7 csphere/php-fpm:5.4 "/usr/bin/supervisord" 2 minutes ago Up 2 minutes 22/tcp, 443/tcp, 0.0.0.0:8080->80/tcp website fbdadcf8ea30 csphere/centos:7.1 "/usr/bin/supervisord" 2 hours ago Up 2 hours 0.0.0.0:2222->22/tcp base 170aa8aa81e7 docker.io/ubuntu:12.04 "/bin/bash" 2 hours ago Exited (130) 2 hours ago pensive_carson e4d7ffc89923 ubuntu:12.04 "/bin/bash" 2 hours ago Exited (0) 2 hours ago sharp_noyce 进入到虚拟机 docker exec -it website /bin/bash
Docker安装
Yum -y install kernel device-mapper-libs docker-io util-linux
启动docker
/etc/init.d/docker restart
Docker搜索centos镜像
Docker search centos
下载镜像文件
docker pull centos
进入一个centos容器,退出后直接关闭了
docker run --name mydocker -it centos /bin/bash
参数
-i 输入的终端保持打开状态
-t 开一个伪状态tty
--name 起一个名字
如果没有centos镜像,会直接pull下来
放到后台启动
docker run -d --name docker1 centos /bin/bash
启动一个nginx镜像
# docker run -d --name mynignx nginx
访问另一个容器空间
1.docker inspect –format “{{.State.Pid}}” mynginx
或者
docker inspect --format "{{.State.Pid}}" 1c760bace837
2.nsenter --target 7199 --mount --uts --ipc --net –pid
使用-P(大) 参数,容器中的nginx 80端口随机映射到物理系统的端口,本例是(32768)
docker run -d -P mysqlnginx2 nginx
[root@test2 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9d0232d3f900 nginx "nginx -g 'daemon of 16 seconds ago Up 15 seconds 0.0.0.0:32769->80/tcp, 0.0.0.0:32768->443/tcp mysqlnginx2
使用-p(小) 参数,容器中的nginx 80端口映射到物理系统的91端口,本例是(91)
docker run -d -p 91:80 --name mysqlnginx3 nginx
数据存储
指定挂载目录
docker run –it --name volume-test1 -h nginx -v /data centos
参数
-h 指定主机名
-v 使用数据卷,创建一个/data的数据卷
查看卷路径
docker inspect -f {{.Volumes}} volume-test1
map[/data:/var/lib/docker/volumes/4580993fb2dec28ff463a7ee89a73516cb3a98310e2ce62362790c5ba7933657/_data]
docker run –it name volume-test1 -h nginx -v /data:/opt centos
指定本地的目录挂载docker容器的/data目录
run -it --name centos7.3 -h C1PW011 -v /data/webserver:/data centos
[root@test2 _data]# docker inspect -f {{.Volumes}} centos7.3
map[/data:/data/webserver]
数据卷容器:引用其他docker中的卷
docker run -it --name centos7.4 --volumes-from centos7.3 centos
手动创建images镜像
[root@test2 ~]# docker commit -m "my nginx" ff6978bdf126 fengjian/my-nignx:v1
f1cecf7ef1d849715d5b2b3bbc53b557fcbaea8f91f38fd5064aba686c46a84f
[root@test2 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
fengjian/my-nignx v1 f1cecf7ef1d8 35 seconds ago 721.7 MB
启动镜像
docker run -d -p 10000:80 fengjian/my-nignx:v1 /data/nginx/sbin/nginx
Docker资源隔离 LXC
kernel namespace
Pid namespace
Net namespace
Ipc namespace
Mnt 类似与chanageroot
Uts hosntmae
User
Docker 资源限制 cgroup (cpu和 内存限制
压力测试工具
yum install stress
docker run -it --rm -c 512 strees:v5.0 --cpu 1