Docker 容器与镜像

docker image

基础镜像: 没有父镜像的镜像
镜像获取:sudo docker pull ubuntu:12.04 == sudo docker pull registry.hub.docker.com/ubuntu:12.04

源配置:
{"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]}
该链接为中科大加速器地址,无需注册。
执行命令生效
systemctl daemon-reload
systemctl restart docker

容器启动:

sudo docker run -t -i ubuntu:14.04 /bin/bash

容器更改提交:

docker tag ubuntu:15.10 runoob/ubuntu:v3 可以对这个版本打标签,打完标签后会生成新的镜像
sudo docker commit -m "Added json gem" -a "Docker Newbee" 0b2616b0e5a8 ouruser/sinatra:v2
其中,-m 来指定提交的说明信息 -a 可以指定更新的用户信息;之后是用来创建镜像的容器的 ID;最后指定目标镜像的仓库名和 tag 信息。创建成功后会返回这个镜像的 ID 信息。

Dockerfile (每一条指令都是镜像的一层)
# This is a comment
FROM ubuntu:14.04 #指定基础镜像
LABEL version="1.0"  为镜像指定标签
MAINTAINER "donghao" 指定作者
ENV <key>=<value> ... 指定虚拟环境
语法有两种
1. ENV <key> <value>
2. ENV <key>=<value> ...
两者的区别就是第一种是一次设置一个,第二种是一次设置多个
Docker容器
容器的启动

docker run ubuntu:14.04 /bin/bash 'docker started'
docker run -itd ubuntu:14.04 bash # 启动一个 bash 终端,允许用户进行交互
-t 选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上, -i 则让容器的标准输入保持打开
-d 守护态形式运行
docker start containerID

执行步骤
检查本地是否存在指定的镜像,不存在就从公有仓库下载
利用镜像创建并启动一个容器
分配一个文件系统,并在只读的镜像层外面挂载一层可读写层
从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
从地址池配置一个 ip 地址给容器
执行用户指定的应用程序
执行完毕后容器被终止
导出和导入容器

导出:
sudo docker export 7691a814370e > ubuntu.tar
导入:
cat ubuntu.tar | sudo docker import - test/ubuntu:v1.0
URL形式导入:
sudo docker import http://example.com/exampleimage.tgz example/imagerepo

删除长在运行的容器

docker rm -f xxx

猜你喜欢

转载自www.cnblogs.com/donghaoblogs/p/12172434.html