Docker 容器与镜像

2020/01/09 17:05
阅读数 23

#####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

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部