dockers学习笔记5--container

 

 

 

 

 

[root@localhost docker_test]# docker run bigni/test3 #运行
docker so easy !
[root@localhost docker_test]# docker container ls #查看在运行的tontainer,发现没有上面运行的container,原因是上面的程序不是常驻内存的进程,程序结束后,docker便退出了。
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@localhost docker_test]# docker container ls -a #查看所有container,包括退出的
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                          PORTS               NAMES
8c3e652d7321        bigni/test3         "/soeasy.sh"        14 seconds ago      Exited (0) 13 seconds ago                           xenodochial_diffie
80e6e373f1d4        cfbfd0a29d1c        "/soeasy.sh"        36 minutes ago      Exited (0) 36 minutes ago                           dreamy_mendel
934e574a077d        e2b5b08cc31c        "/soeasy.sh"        39 minutes ago      Exited (1) 39 minutes ago                           nostalgic_lehmann
871a7d62acc1        f5620b92331c        "/soeasy2"          About an hour ago   Exited (15) About an hour ago                       serene_spence
72fd56c76100        hello-world         "/hello"            43 hours ago        Exited (0) 43 hours ago                             trusting_pasteur
[root@localhost docker_test]# 
[root@1c4586fe95ee /]# touch test.sh #container是在image之上创建的一个可读写的layer
[root@1c4586fe95ee /]# ls
anaconda-post.log  bin  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  test.sh  tmp  usr  var
[root@1c4586fe95ee /]#

交互式启动容器

想办法让常驻内存,比如可以进入 centos 交互式运行

[root@localhost docker_test]# docker run -it centos
[root@1c4586fe95ee /]# ls
anaconda-post.log  bin  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@1c4586fe95ee /]# ifconfig #这个centos发行版很多工具没装
bash: ifconfig: command not found
[root@1c4586fe95ee /]# vim
bash: vim: command not found
[root@1c4586fe95ee /]# vi
[root@1c4586fe95ee /]# 

进入到centos操作系统了,这时我在宿主机另起一个session查看containers

[root@localhost docker_test]# docker container ls
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS               NAMES
1c4586fe95ee        centos              "/bin/bash"         About a minute ago   Up About a minute                       agitated_banzai
[root@localhost docker_test]# 

 

非交互式启动容器

[root@localhost ~]# docker image ls  
REPOSITORY          TAG       IMAGE ID       CREATED        SIZE
mhart/alpine-node   latest    42bfa7acee09   3 weeks ago    108MB
alpine              3.10      e7b300aee9f9   4 weeks ago    5.58MB
alpine              latest    6dbb9cc54074   4 weeks ago    5.61MB
hello-world         latest    d1165f221234   2 months ago   13.3kB
[root@localhost ~]# docker run -d  --name alpine_sleep alpine:3.10 /bin/sleep 300
883e654b45726116b8f8d89536f40cffafcfee63897b5faa5f4d381de1fb51b9
[root@localhost ~]# docker ps -a
CONTAINER ID   IMAGE         COMMAND            CREATED          STATUS                    PORTS     NAMES
883e654b4572   alpine:3.10   "/bin/sleep 300"   50 seconds ago   Up 48 seconds                       alpine_sleep
b133723326c4   hello-world   "/hello"           18 hours ago     Exited (0) 18 hours ago             naughty_wozniak
[root@localhost ~]# 
这里有进程夯住之后 容器就不会挂掉了

在宿主机查看进程

[root@localhost ~]# ps aux |grep sleep|grep -v grep
root      23771  0.0  0.0   1540   248 ?        Ss   17:52   0:00 /bin/sleep 300
root      23829  0.0  0.0 107952   356 ?        S    17:54   0:00 sleep 60
[root@localhost ~]# 
docker用了宿主机的内核 所以虽然是隔离的 但是在宿主机仍然可以查看到docker的进程 而且有自己的pid

 

 

 

 

启动容器(运行镜像)

docker run是日常用的最频繁用的命令之一,同样也是较为复杂的命令之一
命令格式: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] OPTIONS :选项
-i:表示启动-一个可交互的容器, 并持续打开标准输入 -t:表示使用终端关联到容器的标准输入输出上 -d :表示将容器放置后台运行 --rm:退出后即删除容器 --name :表示定义容器唯一名称 IMAGE :表示要运行的镜像 COMMAND :表示启动容器时要运行的命令* ARG:参数

 

posted @ 2019-07-06 18:39  爬行的龟  阅读(323)  评论(0编辑  收藏  举报
如有错误,欢迎指正 邮箱656521736@qq.com