docker pull
docker pull registry.hub.docker.com/ubuntu:15.04
# 即从注册服务器 registry.hub.docker.com 中的 ubuntu 仓库来下载标记为 15.04 的镜像
存出和载入镜像
# 存出镜像
sudo docker save -o ubuntu_14.04.tar ubuntu:14.04
# 载入镜像
sudo docker load --input ubuntu_14.04.tar
sudo docker load < ubuntu_14.04.tar
导出和导入容器
# 导出容器
sudo docker ps -a
## CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
## 7691a814370e ubuntu:14.04 "/bin/bash" 36 hours ago Exited (0) 21 hours ago test
sudo docker export 7691a814370e > ubuntu.tar
# 导入容器快照
cat ubuntu.tar | sudo docker import - test/buntu:v1.0
sudo docker import http://example.com/exampleimage.tgz example/imagerepo
注:用户既可以使用 docker load 来导入镜像存储文件到本地镜像库,也可以使用 docker import来导入一个容器快照到本地镜像库。这两者的区别在于容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),而镜像存储文件将保存完整记录,体积也要大。此外,从容器快照文件导入时可以重新指定标签等元数据信息。
Generate base image
1.Dockerfile
FROM ubuntu:15.04
MAINTAINER Darebeat <fengwei2010@126.com>
# 设置时区
ENV TZ "Asia/Shanghai"
ENV TERM xterm
ADD patch.tar.gz /
RUN apt-get update && apt-get install -y vim curl git
2.patch.tar.gz
/etc/apt/source.list
/bin/
ping
bash
mysql 这是可执行的客户端二进制文件
/sbin/
ifconfig
route
3.built
#! /bin/bash
set -e
if [ $(docker images|grep ubuntu|grep base|awk '{print $3}') ]; then
docker rmi -f $(docker images|grep ubuntu|grep base|awk '{print $3}')
fi
docker build -t ubuntu:base .
运行container
docker run -idt --rm -p 2222:22 -P 22 --name test busybox:latest sh
进入container
docker exec -it test /bin/bash
Docker容器内外互相拷贝数据
1.用-v挂载主机数据卷到容器内
docker run -v /path/to/hostdir:/mnt $container
# 在容器内拷贝
cp /mnt/sourcefile /path/to/destfile
2.直接在主机上拷贝到容器物理存储系统
3.用输入输出符
docker run -i ubuntu /bin/bash -c 'cat > /path/to/container/file' < /path/to/host/file/
docker exec -it <container_id> bash -c 'cat > /path/to/container/file' < /path/to/host/file/