标签: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
标签:ipv6 content pre run create global cep 为我 docker容器
原文地址:https://www.cnblogs.com/luncy/p/14751945.html