如何构建一个新的 docker image (基于ubuntu)
1, 创建一个新目录,在目录中创建 Dockerfile 文件
http://blog.csdn.net/wsscy2004/article/details/25878223
mkdir mydockerbuild
cd mydockerbuild
vim Dockerfile
add the following into Dockerfile
FROM ubuntu
# Build env
RUN sudo apt-get install -y git
RUN mkdir -p /home/kreatv && chown -R kreatv:kreatv /home/kreatv
USER kreatv
WORKDIR /home/kreatv
CMD /bin/bash
2, 开始构建 image
Dockerfile用来创建一个自定义的image,包含了用户指定的软件依赖等。当前目录下包含Dockerfile,使用命令build来创建新的image,并命名为
sudo docker build -t fedora-kreatv .
3 , image 位置
对应的/var/lib/docker目录下就有这些东西:
4, 运行生成的images
docker run -t -i fedora_docker
5, attach 已经运行的images/container
sudo docker ps -a # check all the containers sudo docker start -ai <continaer id or name> # start the container and attach to it
6, 查看 containers
sudo docker ps -a
sudo docker ps -a # check all the containers
sudo docker start -ai <continaer id or name> # start the container and attach to it
7, 删除containers
leosu@leosu:/var/lib/docker$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e2cd875f6be2 fedora_docker:latest "/bin/sh -c /bin/bas About an hour ago Up About a minute nostalgic_thompson
b0f051b4bdb4 56bfaee78595 "/bin/sh -c 'dnf ins About an hour ago Exited (1) About an hour ago furious_jones
d6ad0e36e6b8 fedora:latest "/bin/sh -c 'dnf ins 2 hours ago Exited (0) About an hour ago insane_bardeen
e149306345d2 fedora:latest "/bin/sh -c 'yum ins 2 hours ago Exited (0) About an hour ago grave_lovelace
54ae7e151dd8 fedora:latest "/bin/sh -c 'yum ins 2 hours ago Exited (-127) 2 hours ago grave_heisenberg
96a4ad1ec436 cf0c4bd36997 "/bin/sh -c 'apt-get 3 hours ago Exited (127) 3 hours ago lonely_bohr
7f229ca65493 cfef33332dfc "/bin/sh -c 'mkdir - 3 hours ago Exited (1) 3 hours ago tender_blackwell
14cc1de4afcb fedora:latest "/bin/sh -c 'sudo ap 3 hours ago Exited (127) 3 hours ago boring_babbage
7a5db8523967 fedora:latest "/bin/sh -c 'apt-get 3 hours ago Exited (127) 3 hours ago insane_morse
a89b941a4a4d fedora:latest "/bin/sh -c 'apt-get 3 hours ago Exited (127) 3 hours ago happy_hoover
f9c02c2f3735 ubuntu:14.04 "/bin/bash" 3 hours ago Exited (0) 3 hours ago mad_sammet
0e88afd4a839 ubuntu:14.04 "/bin/bash" 4 hours ago Exited (127) 4 hours ago dreamy_pare
leosu@leosu:/var/lib/docker/containers$ sudo docker rm a89b941a4a4d
a89b941a4a4d
leosu@leosu:/var/lib/docker/containers$ sudo docker rm 7a5db8523967
7a5db8523967
8, 查看image 状态
sudo docker images --tree
sudo docker imagessudo docker images --tree
sudo docker ps -a # check all the containers
sudo docker start -ai <continaer id or name> # start the container and attach to it
- 删除容器r:
docker rm <Container ID>
- 删除所有容器:
docker rm $(docker ps -a -q)
- 移除镜像:
docker rmi <Container ID>
- 移除所有镜像:
docker rmi $(docker ps -a -q)
1.进入root权限
sudo su
2.停止所有的container,这样才能够删除其中的images:
docker stop $(docker ps -a -q)
如果想要删除所有container的话再加一个指令:
docker rm $(docker ps -a -q)
3.查看当前有些什么images
docker images
4.删除images,通过image的id来指定删除谁
docker rmi <image id>
想要删除untagged images,也就是那些id为<None>的image的话可以用
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
要删除全部image的话
docker rmi $(docker images -q)
原因: docker运行中产生较大文件,以及pull下来的images会占用很多空间:
注意:在执行前确认docker已经启动,sudo docker info
具体做法:
来源: http://alexander.holbreich.org/2014/07/moving-docker-images-different-partition/
备份 fstab
sudo cp /etc/fstab /etc/fstab.$(date +%Y-%m-%d)
停止docker, 用rsync同步/var/lib/docker到新位置.
sudo service docker stop
sudo mkdir /data/docker
sudo rsync -aXS /var/lib/docker/. /data/docker/
sudo rm -rf /var/lib/docker/*
修改fstab,
sudo vim /etc/fstab
把下面一行添加到fstab里,将新位置挂载到 /var/lib/docker
/data/docker /var/lib/docker none bind 0 0
类似这样:
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/xvda1 during installation
UUID=af414ad8-9936-46cd-b074-528854656fcd / ext4 errors=remount-ro,barrier=0 0 1
/dev/xvdb1 /data ext4 errors=remount-ro,barrier=0 0 0
/data/docker /var/lib/docker none bind 0 0
重新挂载
sudo mount -a
检查一下
sudo df /var/lib/docker/
如果成功会是如下输出
Filesystem 1K-blocks Used Available Use% Mounted on
/data/docker 20510332 591672 18853752 4% /var/lib/docker
config file:
#/etc/default/docker
# sudo service docker restart
download images:
# docker pull ubuntu
run docker:
#docker run -i -t ubuntu /bin/bash
download and then running:
$ sudo docker run -i -t fedora /bin/bash
Unable to find image 'fedora' locally
Pulling repository fedora
ded7cd95e059: Downloading 1.055 MB
48ecf305d2cf: Download complete
show images:
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
ubuntu 15.10 22ba5544a647 2 weeks ago 134.7 MB
ubuntu wily-20150708 22ba5544a647 2 weeks ago 134.7 MB
ubuntu wily 22ba5544a647 2 weeks ago 134.7 MB
ubuntu utopic-20150625 dce38fb57986 2 weeks ago 194.5 MB
show running images:
$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f9c02c2f3735 ubuntu:14.04 "/bin/bash" 12 minutes ago Exited (0) 16 seconds ago mad_sammet
0e88afd4a839 ubuntu:14.04 "/bin/bash" 40 minutes ago Exited (127) 27 minutes ago dreamy_pare