Docker 分享
2016-06-29 17:30
561 查看
注:由 oschina (宇哲不犹豫)搬家过来
Docker 与VM 的比较,一个是在系统内核上虚拟的,另一个是在硬件上虚拟的。
Docker的一些基本概念?
仓库:就是保存docker 镜像的地址
镜像:就是linux系统
容器:就是跑起来的linux系统
docker的使用?
讲解一些docker操作: dockerfile、容器的文件互传、结合nginx使用。
搜索docker镜像:docker search XXXX
获取镜像:docker pull centos:7
跑起镜像实例:docker run –it –p 10000:80 –name “dddd” centos:7 /bin/bash
安全退出:Ctrl+p \ Ctrl+q
查看正在运行的容器:docker ps
查看所有的容器:docker ps –a
停止/启动/重启容器:docker stop/start/restart containerId
删除容器:docker rm containerId (要先停止这个container)
查看镜像:docker images
删除镜像:docker rmi imageId (要先删除依赖镜像的所有容器)
导出docker image: docker save –output=”vtest” vtest:v1
载入docker image: docker load –input=”vtest”
Cat vtest | docker import – vtest:v1
注:用户既可以使用 docker load 来导入镜像存储文件到本地镜像库,也可以使用 docker import 来导入一个容器快照到本地镜像库。
这两者的区别在于容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),而镜像存储文件将保存完整记录,体积也要大。
此外,从容器快照文件导入时可以重新指定标签等元数据信息。
导出容器:docker export –output=”ssss” containerId
创建镜像:docker commit –m “message” –a “author” containerId name:version
Docker build –t=”name:version” DockerfilePath
上传镜像:1、docker login
2、docker commit
3、docker push name:version
这个例子是在创建一个centos:7系统并安装了nginx的镜像
Dockerfile 语法解释:
1、注释使用 “#” 符号开头
2、命令为从上往下执行
3、FROM 为获取docker镜像命令
例子: FROM {imageName}:{imageVersion}
解释:执行到这句命令时,会从默认的docker仓库中查找到相应的镜像,
等同于 docker pull {imageName}:{imageVersion} , docker run -it {imageName}:{imageVersion}
docker attach {这个容器Id} 。
4、RUN 执行 linux 指令
5、WORKDIR 修改当前工作路径(相对于容器来说的)
6、ADD 命令是添加 以Dockerfile所在目录为根的文件至docker容器中
例子: ADD hello1.html /usr/local/nginx/html/
解释:hello1.html 与 Dockerfile处于同一目录下
补充:
1、VOLUME [“路径”] 路径为容器路径
挂载一个数据卷: 至于挂载位置,可以使用 docker inspect -f “{{.Mounts}}” 容器Id
从主机上拷贝文件至容器
获取容器的详细id 根据 docker ps –a 来获取简单的id
docker inspect -f ‘{{.Id}}’ 步骤A获取的名称或者id
docker 1.9.1版本的
使用
其他的试试
Linux命令咯
Sftp 工具来获取咯
sftp root@地址
get php-pkg-infi_2015-6-26.tgz /data-scm/
Dockerfile 指令解释http://blog.csdn.net/u010201484/article/details/51784756
Xxx必须为Dockerfile父文件夹内
什么是docker?
Docker 是google 使用 go 语言在LXC技术基础上进行封装的 linux 容器管理工具。Docker 与VM 的比较,一个是在系统内核上虚拟的,另一个是在硬件上虚拟的。
Docker的一些基本概念?
仓库:就是保存docker 镜像的地址
镜像:就是linux系统
容器:就是跑起来的linux系统
docker的使用?
讲解一些docker操作: dockerfile、容器的文件互传、结合nginx使用。
一、 docker基本操作
启动docker 服务 service docker start搜索docker镜像:docker search XXXX
获取镜像:docker pull centos:7
跑起镜像实例:docker run –it –p 10000:80 –name “dddd” centos:7 /bin/bash
安全退出:Ctrl+p \ Ctrl+q
查看正在运行的容器:docker ps
查看所有的容器:docker ps –a
停止/启动/重启容器:docker stop/start/restart containerId
删除容器:docker rm containerId (要先停止这个container)
查看镜像:docker images
删除镜像:docker rmi imageId (要先删除依赖镜像的所有容器)
导出docker image: docker save –output=”vtest” vtest:v1
载入docker image: docker load –input=”vtest”
Cat vtest | docker import – vtest:v1
注:用户既可以使用 docker load 来导入镜像存储文件到本地镜像库,也可以使用 docker import 来导入一个容器快照到本地镜像库。
这两者的区别在于容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),而镜像存储文件将保存完整记录,体积也要大。
此外,从容器快照文件导入时可以重新指定标签等元数据信息。
导出容器:docker export –output=”ssss” containerId
创建镜像:docker commit –m “message” –a “author” containerId name:version
Docker build –t=”name:version” DockerfilePath
上传镜像:1、docker login
2、docker commit
3、docker push name:version
二、 dockerfile
先上代码:这个例子是在创建一个centos:7系统并安装了nginx的镜像
# get docker image FROM centos:7 RUN yum install -y wget WORKDIR /usr/local/src RUN wget http://nginx.org/download/nginx-1.9.8.tar.gz RUN tar -zxf nginx-1.9.8.tar.gz RUN mkdir /usr/local/nginx RUN yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel WORKDIR nginx-1.9.8 RUN ./configure --prefix=/usr/local/nginx RUN make && make install ADD hello1.html /usr/local/nginx/html/
Dockerfile 语法解释:
1、注释使用 “#” 符号开头
2、命令为从上往下执行
3、FROM 为获取docker镜像命令
例子: FROM {imageName}:{imageVersion}
解释:执行到这句命令时,会从默认的docker仓库中查找到相应的镜像,
等同于 docker pull {imageName}:{imageVersion} , docker run -it {imageName}:{imageVersion}
docker attach {这个容器Id} 。
4、RUN 执行 linux 指令
5、WORKDIR 修改当前工作路径(相对于容器来说的)
6、ADD 命令是添加 以Dockerfile所在目录为根的文件至docker容器中
例子: ADD hello1.html /usr/local/nginx/html/
解释:hello1.html 与 Dockerfile处于同一目录下
补充:
1、VOLUME [“路径”] 路径为容器路径
挂载一个数据卷: 至于挂载位置,可以使用 docker inspect -f “{{.Mounts}}” 容器Id
三、 容器文件互传
数据卷挂载,实现容器中文件的互传/home/cyz/test/container 为host主机的文件夹 /home/file 为容器的文件夹,当该容器没有这个文件是,会自动生成 docker run -it -v /home/cyz/test/container/:/home/file --name="mntfile" centos /bin/bash
从主机上拷贝文件至容器
获取容器的详细id 根据 docker ps –a 来获取简单的id
docker inspect -f ‘{{.Id}}’ 步骤A获取的名称或者id
docker 1.9.1版本的
使用
cp coppp /var/lib/docker/btrfs/subvol7068261036f23842870f97f2e4ec11a769e089a8df0559/home/coppp
其他的试试
$ sudo cp path-file-host /var/lib/docker/aufs/mnt/FULL_CONTAINER_ID/PATH-NEW-FILE 或者 $ sudo cp path-file-host /var/lib/docker/devicemapper/mnt/123abc<<id>>/rootfs/root
Linux命令咯
Sftp 工具来获取咯
sftp root@地址
get php-pkg-infi_2015-6-26.tgz /data-scm/
Dockerfile 指令解释http://blog.csdn.net/u010201484/article/details/51784756
FROM centos:7 RUN yum install –y wget RUN mkdir /usr/local/nginx WORKDIR /usr/local/src RUN yum install –y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel RUN wget http://nginx.org/download/nginx-1.9.8.tar.gz RUN tar –zxf nginx-1.9.8.tar.gz WORKDIR nginx-1.9.8 RUN ./configure –prefix=/usr/local/nginx RUN make && make install ADD xxx /home/xxx
Xxx必须为Dockerfile父文件夹内
四、 结合nginx使用
Nginx 加多个docker实例相关文章推荐
- Docker 镜像只制作LNMP + redis
- docker ceph 存储的了解
- docker与vagrant的区别
- 使用Mesos管理Docker集群(Mesos + Marathon + Chronos + Docker)
- DevOps 流程中对于 Docker Image 的分层管理与实践
- Docker安全之用户资源隔离
- docker学习(一)
- docker学习
- 利用docker开启持续交付之路
- Docker 1.12.0将要发布的新功能
- 42.docker简介
- Docker与虚拟机性能比较
- Docker使用说明
- docker
- docker安装与应用
- Centos7 Docker 多主机 容器互连--基于OVS
- docker快速入门+搭建javaweb环境
- 测试docker不同主机间容器互相访问
- Jenkins+Docker搭建持续集成测试环境
- 未来演进的方向--基于Docker部署微服务