码迷,mamicode.com
首页 > 其他好文 > 详细

Docker容器基础管理

时间:2021-05-24 05:44:20      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:ipv6   content   pre   run   create   global   cep   为我   docker容器   

Docker容器管理基础

运行第一个容器,容器启动必须依赖镜像。

[root@localhost ~]# docker image ls    #首先查看已有的镜像
REPOSITORY         TAG           IMAGE ID                  CREATED              SIZE
nginx                        latest         62d49f9bab67           3 weeks ago           133 MB
centos                      6.9             2199b8eb8390          2 years ago             195 MB
centos                      7.5.1804    cf49811e3cdb            2 years ago             200 MB

[root@localhost ~]# docker container   #利用docker container查看可以使用的所有的命令

Commands:

attach  commit  cp  create  diff  exec  export  inspect  kill  logs  ls  pause  port  prune  rename  restart  rm  run  start  stats  stop  top  unpause  update  wait 

采用交互式方法进入容器

主要是针对于工具类的容器,一旦exit容器,容器就自动关闭,我们进入一个容器,就相当于进入一个新的系统。

[root@localhost ~]# docker run -it --name "testcentos" centos:6.9 /bin/bash  

[root@05eaf758ef1c /]#  #注意主机名的变化,看到变化才说明进入了容器

[root@localhost ~]# docker run -it --name "wjtest.1" centos:6.9 /bin/bash     #并且注意每一次重新进入容器是,必须要在一个新的端口进入容器

[root@a57ee81770a8 /]#  #注意主机名的变化

[root@localhost ~]# docker run -it  centos:6.9 /bin/bash

[root@05eaf758ef1c /]#  #注意主机名的变化

注意在这里重新开启一个窗口,查看正在运行的容器

[root@localhost /]# docker container ls
CONTAINER ID      IMAGE            COMMAND       CREATED             STATUS                     PORTS             NAMES
aae2c76768ed        centos:6.9      "/bin/bash"         35 seconds ago     Up 35 seconds                                    nifty_hawking   #此处的名字是系统自动生成的
a57ee81770a8        centos:6.9      "/bin/bash"         3 minutes ago       Up 3 minutes                                        wjtest.1             #这里的名字是自己指定
05eaf758ef1c          centos:6.9       "/bin/bash"        19 minutes ago      Up 19 minutes                                     testcentos

[root@localhost ~]# docker container ls -a   #查看容器的状态,容器的状态有Up Exited两种状态
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
aae2c76768ed centos:6.9 "/bin/bash" About an hour ago Up About an hour nifty_hawking
a57ee81770a8 centos:6.9 "/bin/bash" 2 hours ago Up 2 hours wjtest.1
05eaf758ef1c centos:6.9 "/bin/bash" 2 hours ago Up 2 hours testcentos
e4025c536779 nginx:latest "/docker-entrypoin..." 2 hours ago Exited (0) 2 hours ago keen_kilby

守护式容器(后面带着-d)

[root@localhost ~]# docker run -d --name="wangju" nginx:1.14     #查看前面利用交互式进入容器的内容,发现此时进入容器使用的是docker  run 命令
Unable to find image ‘nginx:1.14‘ locally   #当我们输入的容器系统中没有的时候,系统会自动下载
1.14: Pulling from library/nginx
27833a3ba0a5: Pull complete
0f23e58bd0b7: Pull complete
8ca774778e85: Pull complete
Digest: sha256:f7988fb6c02e0ce69257d9bd9cf37ae20a60f1df7563c3a2a6abe24160306b8d
Status: Downloaded newer image for nginx:1.14
f8b426354df9691f4404fcf4f789ed505c7618281ded28720b06f692725a7966

[root@localhost ~]# docker container ls -a     #查看容器是否启动成功,显然成功了
CONTAINER ID           IMAGE             COMMAND                       CREATED             STATUS               PORTS         NAMES
f8b426354df9               nginx:1.14       "nginx -g ‘daemon ..."         4 minutes ago        Up 4 minutes       80/tcp            wangju

这里省略了其他的容器!!!

[root@localhost ~]# docker container inspect wangju     #查看容器的详细信息

[
{
"Id": "f8b426354df9691f4404fcf4f789ed505c7618281ded28720b06f692725a7966",

----------------------------------------------------------------------------------------------------------------------

省略部分输出信息

----------------------------------------------------------------------------------------------------------------------

"Gateway": "172.17.0.1",       #这里只摘出部分可用的信息
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "172.17.0.5",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"MacAddress": "02:42:ac:11:00:05",

根据ip地址去访问容器

[root@localhost ~]# curl -I 172.17.0.5
HTTP/1.1 200 OK
Server: nginx/1.14.2
Date: Mon, 10 May 2021 12:23:39 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 04 Dec 2018 14:44:49 GMT
Connection: keep-alive
ETag: "5c0692e1-264"
Accept-Ranges: bytes

删除容器,手工删除

[root@localhost ~]# docker container rm -f wangju
wangju
[root@localhost ~]# docker container ls -a    #删除之后查看是否删除
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
aae2c76768ed centos:6.9 "/bin/bash" 2 hours ago Up 2 hours nifty_hawking  #查看的时候发现没有wangju 容器了

交互式的容器应用场景:工具类,开发,测试,临时性的任务

[root@localhost ~]# docker run -d --name="wangju" nginx:1.14 --rm f6356c1105d5(ID号)#不需要手动删除了,退出的时候就会删除。(执行此命令,首先会登陆容器,当使用exit命令退出容器的时候,会自动删除容器的信息)

守护式容器应用场景:服务

[root@localhost ~]# docker run -d --name="wangju" nginx:1.14   #登录nginx1.14容器

[root@localhost /]# docker run -d -p 8080:80 --name="wjtest_80" nginx:1.14    #对外实现服务,既可以在Windows系统上访问
7aa931a0feb6f630c3ac1c2efa72652c9d1b7216a04e882516ff9fc763b0ea4c
[root@localhost /]# docker container ls -a
CONTAINER ID            IMAGE                COMMAND                       CREATED                STATUS                       PORTS                           NAMES
7aa931a0feb6               nginx:1.14          "nginx -g ‘daemon ..."         32 seconds ago        Up 31 seconds            0.0.0.0:8080->80/tcp      wjtest_80
aae2c76768ed              centos:6.9          "/bin/bash"                          3 hours ago              Up 3 hours                                                           nifty_hawking
e4025c536779              nginx:latest         "/docker-entrypoin..."          4 hours ago              Exited (0) 4 hours ago                                         keen_kilby

 现在可以在Windows系统上访问网址192.168.146.100:8080(网址中的ip地址Linux系统中的ip地址),因为我们将Linux系统中的80端口映射到Windows系统的8080端口了。

技术图片

 

启动容器(交互式启动,启动完就登进去,不会进入后台)

[root@localhost /]# docker container start -i aae2c76768ed  #使用ID启动的
[root@aae2c76768ed /]#  

[root@aae2c76768ed /]# exit   #退出此容器
exit

[root@localhost /]# docker container stop wjtest_80    #停掉容器
wjtest_80

[root@localhost ~]# docker container ls -a    #查看的时候发现已经停掉了
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7aa931a0feb6 nginx:1.14 "nginx -g ‘daemon ..." 19 minutes ago Exited (0) 5 seconds ago wjtest_80
aae2c76768ed centos:6.9 "/bin/bash" 4 hours ago Exited (0) 44 seconds ago nifty_hawking

注意守护式的容器启动与停止

 [root@localhost /]# docker container start wjtest_80

 [root@localhost /]# docker container stop wjtest_80

  注意交互式容器使用Ctrl+D就可以停掉,也可以使用docker container stop +名字 的形式停掉,而且交互式容器再次启动时使用docker container start -i +名字 就可以连接了。

  交互式容器启动时假使没有使用docker container start -i 命令中的 -i ,直接使用docker container start +名字也可以启动,但是容器会进入后台,自己运行,我们需要给他进行连接一遍,使用命令docker container attach +名字,这样容器就不会在后台运行了,会进入到前台运行。

  这里其实我们可以使用docker container attach +名字 的命令来连接所有在后台运行的进程,把他们放到前台来。

  注意利用子进程的方式登录(就是在已有的工作容器中生成子进程,做登录,可以用于容器调试,退出时也不会影响当前的容器,其实就相当于我们在容器中又重新开启了一个端口,此新端口执行的任务,会在原本的容器中也显示出来,但是当退出此端口时,不会影响原先的进程)

命令如下: [root@localhost /]# docker container exec -it +名字 /bin/bash

 

 

 

 

  

 

Docker容器基础管理

标签:ipv6   content   pre   run   create   global   cep   为我   docker容器   

原文地址:https://www.cnblogs.com/luncy/p/14751945.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!