一,核心概念
1,Docker镜像(类似image)
2,Docker容器
轻量级的沙箱,利用容器来运行和隔离应用,容器是从镜像创建的应用运行实例。
3,Docker仓库
Docker仓库是存放镜像的场所。
Docker仓库和仓库注册服务器的区别:后者是存放仓库的地方,往往放着多个仓库。
二、使用Docker镜像
1,获取镜像
docker pull NAME[:TAG],直接从Docker Hub镜像源来下载镜像。
例如:docker pull ubuntu:14.04
如不指定版本就是下载的latest的镜像。从默认的注册服务器下载。
如要从非官方的仓库下载: docker pull hub.c.163.com/public/ubuntu:14.04
2,查看镜像文件
2.1 docker images 命令列出本地主机上已有镜像的基本信息。
2.2 使用tag命令添加镜像标签
docker tag ubuntu:latest myubuntu: latest
添加标签实际起到类似链接的作用。
2.3 docker inspect ubuntu:14.04 获取该镜像的详细信息,包括作者、适应架构、各层的数字摘要。
docker inspect -f 获取镜像的architecture
3,搜寻镜像
docker search
docker search --automated –s 3 nginx
4, 删除镜像
使用标签删除镜像 docker rmi myubuntu:latest
使用镜像ID删除
注意:当有该镜像创建的容器存在时,镜像文件无法被删除,除非加 –f 参数。
5,创建镜像
5.1 基于已有镜像的容器创建: docker commit
5.2 基于本地模板导入 docker import
5.3 基于dockerfile创建
6,存储和载入镜像
docker save –o ubuntu_14.04.tar ubuntu:14.04
docker load –- input ubuntu_14.04.tar 或者 docker load < ubuntu_14.04.tar
7, 上传镜像 docker push NAME[: TAG] | [REGISTRY_HOST[:REGISTRY_PORT]/]NAME[:TAG]
三、操作Docker 容器
1,创建容器
1.1 新建容器
docker create –it ubuntu:latest 新建完后,容器处于停止状态,要用docker start或者docker run启动它。
1.2 启动容器
docker run等价于先docker create 再docker start
例如 docker run ubuntu /bin/echo ‘Hello world’
docker run –it ubuntu:14.04 /bin/bash
1.3 守护态运行
docker run –d ubuntu /bin/sh –c “while true ; do echo ‘hello world’; sleep 1; done”
1.4 获取容器的输出信息,docker logs
2, 终止容器
docker stop 【】
docker kill 【】
docker ps –qa 查看所有容器的ID
3,进入容器
attach
exec 例如: docker exec –it 2432c23421 /bin/bash
nsenter工具
4, 删除容器
docker rm
如容器正在运行,需加-f 参数
5,导入导出容器
docker export
docker import
四,Docker数据管理
1,数据卷(data volumes): 容器内数据直接映射到本地主机环境。
类似于linux中的mount
docker run –d –P –name web –v /src/webapp:/opt/webapp training/webapp python app.py
上述命令加载主机的/src/webapp 目录到容器的 /opt/webapp目录
2,数据卷容器(Data volume containers): 使用特定容器维护数据卷。
多个容器间共享一些持续更新的数据,数据卷容器也是一个容器
docker run –it –v /dbdata –name dbdata ubuntu
docker run –it -- volumes-from dbdata –name db1 ubuntu
docker run –it -- volumes-from dbdata –name db2 ubuntu
五、端口映射与容器互联
1,端口映射访问容器
-P 会随机映射一个49000~49900的端口到内部容器开放的端口
docker run –d –P training/webapp python app.py
映射到指定地址的指定端口
docker run –d –p 127.0.0.1:5000:5000/udp training/webapp python app.py
查看映射端口的配置 docker port nostalgic_morse 5000
2, 互联机制实现便捷访问 –link 参数格式为 –link name:alias, 其中name是要连接的容器名称,alias是这个连接的别名。
docker run –d –P –name web –link db:db training/webapp python app.py
docker相当于在两个互联的容器之间建立了一个虚拟通道,而不用映射它们的端口到宿主主机上。在启动时也没有-P或-p标记,从而避免了暴露数据库服务到外部网络上。
六、使用dockerfile创建镜像
了解dockerfile的文件结构:一般分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时的执行指令(CMD)
编写完dockerfile后,使用docker build命令来创建镜像。