docker using!

来源:互联网 发布:淘宝旺信 编辑:程序博客网 时间:2024/06/11 17:54


如何构建一个新的 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 images
sudo 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)
















如何删除docker images/

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的image转移到数据盘


1. 将 /var/lib/docker 移至数据盘

原因: 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     






0 0