Docker 基础

概述

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

详情

创建镜像

创建镜像的方法有很多,官方推荐的是直接从官网仓库pull一个,虽然官方的镜像很小,但一些基础的如ping这样的工具都没有安装,所以我选择 openvz的模板

1
2
3
4
5
6
# 下载模板
$ wget http://download.openvz.org/template/precreated/ubuntu-14.04-x86_64.tar.gz
# 导入镜像(由于是网上找的,记得更新源)
$ docker import ubuntu-14.04-x86_64.tar.gz ubuntu:base
# 查看镜像
$ docker images

常用指令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# 进入虚拟机
$ docker run -t -i ubuntu:base /bin/bash
$ docker run -v /home/orleven/docker/common:/tmp -t -i orleven/base:ubuntu_14.04 /bin/bash
# 后台运行容器
$ Ctrl-P + Ctrl-Q
# 保存容器为镜像
$ docker commit -m "ubuntu_base" -a "orleven" 942 orleven/base:ubuntu_14.04
# 登陆hub
$ docker login -u orleven
# 将某一个镜像发布到官方网站。
$ docker push (镜像名:tag)
# 进入容器
$ docker attach 432
$ docker exec -it 1b812fe8dd1d /bin/bash
# 运行容器
$ docker start id
# 下载一个ubuntu镜像
$ docker pull (镜像名:tag)
# 挂载文件夹 端口映射 镜像名
$ docker run -v /home/orleven/docker/web1:/opt/lampp/htdocs -it -p 9001:80 ubuntu:latest
$ docker run -v /home/orleven/docker/common:/tmp/ -it -p 9001:80 ubuntu
# 可以列出所有安装过的镜像。
$ docker images
# 查看正在运行的容器
$ docker ps
# 查看更详细的关于某一个容器的信息。
$ docker inspect efe(id 前三位)
# 在learn/tutorial镜像里面安装ping程序。(必须带上y)
$ docker run learn/tutorial apt-get install -y ping
# 查看版本
$ docker version
# 搜索镜像
$ docker search 镜像名字
# 查看日志
$ docker logs
# 假设我们要导出的镜像名为orleven/base:ubuntu_14.04
docker save -o ubuntu14.04_base.tar.gz orleven/base:ubuntu_14.04
# 保存镜像至ubuntu14.04_base.tar.gz的文件。这需要一点时间。
$ docker export f6c > ./ubuntu14.04_base.tar.gz

特殊指令组合

1
2
3
4
5
6
7
8
9
10
使用`docker logs`快速查看`access.log`
$ docker attach 432
$ tail -f access.log
$ ctul + p ctul + q
$ docker logs
清空none
$ docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker stop
$ docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker rm
$ docker images|grep none|awk '{print $3 }'|xargs docker rmi