docker(1)

来源:互联网 发布:新教育网络师范学院 编辑:程序博客网 时间:2024/05/18 00:05

1.docker 安装:

 

lftp 172.25.254.251

get rhel7.tar

get ubuntu.tar

get docker-engine-1.10.3-1.el7.centos.x86_64.rpm

get docker-engine-selinux-1.10.3-1.el7.centos.noarch.rpm

rpm -ivh docker-engine-1.10.3-1.el7.centos.x86_64.rpm

rpm -ivh docker-engine-selinux-1.10.3-1.el7.centos.noarch.rpm

 

2.数据包的导入

[root@foundation17 ~]# docker load -i ubuntu.tar  数据包导入

 

3.建立容器:

[root@foundation17 ~]# docker run -it --name vm1 ubuntu   //指定容器名称

root@b6e503aec1e3:/# [root@foundation17 ~]#

//////用ubuntu这个镜像生成一个名为vm1的容器///

 

[root@foundation17 ~]# docker run -it ubuntu  //未制定容器名称

[root@foundation17 ~]# docker ps -a

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

c2c94bd4ef22        ubuntu              "/bin/bash"         2 minutes ago       Up 2 minutes                            silly_curie

a2798a01f075        ubuntu              "/bin/bash"         4 minutes ago       Up 8 seconds                            vm1

[root@foundation17 ~]# docker stop c2c94bd4ef22   //结束一个容器(用进程id结束)

c2c94bd4ef22

[root@foundation17 ~]# docker rm c2c94bd4ef22     //删除容器(用进程id删除)

c2c94bd4ef22

[root@foundation17 ~]# docker ps -a

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

a2798a01f075        ubuntu              "/bin/bash"         5 minutes ago       Up About a minute                       vm1

 

root@bd4961841626:/# [root@foundation17 ~]# docker attach vm1       //进入容器

^C

root@bd4961841626:/# ls

bin   dev  home  lib64  mnt  proc  run   srv  tmp  var

boot  etc  lib   media  opt  root  sbin  sys  usr

root@bd4961841626:/# touch file{1..5}        //相当与一个虚拟机

root@bd4961841626:/# ls

bin   dev  file1  file3  file5  lib    media  opt   root  sbin  sys  usr

boot  etc  file2  file4  home   lib64  mnt    proc  run   srv   tmp  var

 

 

[root@foundation17 ~]# docker pause vm1      //暂停容器

vm1

[root@foundation17 ~]# docker ps -a

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                   PORTS               NAMES

bd4961841626        ubuntu              "/bin/bash"         2 minutes ago       Up 41 seconds (Paused)                       vm1

[root@foundation17 ~]# docker unpause vm1      //启动容器

vm1

[root@foundation17 ~]# docker ps -a

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

bd4961841626        ubuntu              "/bin/bash"         3 minutes ago       Up About a minute                       vm1

 

[root@foundation17 ~]# docker run -it --name vm2 ubuntu

root@aac0080d0606:/# [root@foundation17 ~]# docker run -it --name vm3 ubuntu

root@13e9f0e36ea0:/# [root@foundation17 ~]# docker run -it --name vm4 ubuntu

root@2e4adfc6ea87:/# [root@foundation17 ~]# docker run -it --name vm5 ubuntu

root@cf98619960fc:/# [root@foundation17 ~]#

[root@foundation17 ~]# docker ps -aq

cf98619960fc

2e4adfc6ea87

13e9f0e36ea0

aac0080d0606

bd4961841626

[root@foundation17 ~]# docker stop `docker ps -aq`    

cf98619960fc

2e4adfc6ea87

13e9f0e36ea0

aac0080d0606

bd4961841626

容器内的数据提交:(docker commit vm3 ubuntu//提交vm3容器里面的数据到ubuntu镜像放到仓库)

[root@foundation17 ~]# docker commit vm3 ubuntu

sha256:ca9b1aa4a9aee738f632999bfad3baf5bda20b5a8b51de82b8f288a922cb4a66

[root@foundation17 ~]# docker stop vm3

vm3

[root@foundation17 ~]# docker rm vm3

vm3

[root@foundation17 ~]# docker run -it --name vm4 ubuntu

root@6cb52f07dcde:/# ls

bin   dev  file1  file3  file5  lib    media  opt   root  sbin  sys  usr

boot  etc  file2  file4  home   lib64  mnt    proc  run   srv   tmp  var

 

提交的内容在镜像里面的内容上面加一层:(镜像是只读的)

 

[root@foundation17 ~]# docker run -it --name vm1 ubuntu

root@59026e7f5104:/# ls

bin   dev  file1  file3  file5  lib    media  opt   root  sbin  sys  usr

boot  etc  file2  file4  home   lib64  mnt    proc  run   srv   tmp  var

root@59026e7f5104:/# rm -fr file*

root@59026e7f5104:/# ls

bin   dev  home  lib64  mnt  proc  run   srv  tmp  var

boot  etc  lib   media  opt  root  sbin  sys  usr

root@59026e7f5104:/# exit

exit

[root@foundation17 ~]# docker commit vm1 ubuntu

sha256:734d5eba88071735584a1c22519d9000d133b531df3dd7b56e6bbd0dca2abdd3

 

[root@foundation17 ~]# docker run -it --name vm8 ubuntu

root@e05171f7c0c7:/# ls

bin   dev  home  lib64  mnt  proc  run   srv  tmp  var

boot  etc  lib   media  opt  root  sbin  sys  usr

 

[root@foundation17 ~]# docker history ubuntu        //查看镜像的层(最多不能超过127层)

IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT

734d5eba8807        29 minutes ago      /bin/bash                                       52 B                

ca9b1aa4a9ae        51 minutes ago      /bin/bash                                       28 B                

07c86167cdc4        14 months ago       /bin/sh -c #(nop) CMD ["/bin/bash"]             0 B                 

220d2912ab1d        14 months ago       /bin/sh -c sed -i 's/^#\s*\(deb.*universe\)$/   1.895 kB            

cc77a2e3d72c        14 months ago       /bin/sh -c echo '#!/bin/sh' > /usr/sbin/polic   194.5 kB            

c8fa7cdceff3        14 months ago       /bin/sh -c #(nop) ADD file:b9504126dc55908988   187.7 MB

 

////vm1里面新建文件后,提交,vm1里面的文件提交到ubuntu之后,ubuntu里面就有记录,再用镜像ubuntu建立容器,容器内部包含有vm1里面的文件。如果删除vm1里面新建的文件,再次提交,ubuntu里面的内容就会被覆盖掉。再次用ubuntu建立容器,新建立的容器不就没有最早vm1里面建立的文件。

 

 

复制文件到容器里面需要制定路径(即容器源)

[root@foundation17 ~]# docker cp /etc/passwd vm1

must specify at least one container source

[root@foundation17 ~]# docker cp /etc/passwd vm1:/

 

[root@foundation17 ~]# docker export -o vm2.tar vm1   //导出到当前目录,并命名为vm2.tar

 

[root@foundation17 ~]# docker save -o ubuntu.tar ubuntu:v1  // 将ubuntu:v1镜像制成 ubuntu:v1文件

 

 

[root@foundation17 ~]# docker run -d --name web -p 8000:80 nginx

3cca467e17717b7dd09dd997d7df4e2239e8505be8f0fc79ec11804c5365103d

[root@foundation17 ~]# docker ps

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                           NAMES

3cca467e1771        nginx               "nginx -g 'daemon off"   15 seconds ago      Up 11 seconds       443/tcp, 0.0.0.0:8000->80/tcp   web

[root@foundation17 ~]# netstat -antlp | grep :8000

tcp6       0      0 :::8000                 :::*                    LISTEN      16093/docker-proxy  

 

[root@foundation17 ~]# docker diff vm1

C /root

C /root/.bash_history

A /passwd

D /file2

D /file5

D /file1

D /file3

D /file4

 

D:表示删除

A:表示增加add

 

 

0 0
原创粉丝点击