Docker 容器高级操作

Docker容器高级操作

Docker容器创建、停止、启动、删除等基础操作上篇已述,然Docker容器被广大开发者青睐,不可能只有如此简单的功能,必有高阶功法。那么接下来 让我们一同走进容器操作的高级篇,领略其高级操作的魅力

查看容器

docker ps -a | grep tomcat

[root@tudou tudou]# docker ps -a | grep tomcat
e3a88ea4ffb9  tomcat:8.0   "catalina.sh run"   13 seconds ago   Up 12 seconds   8080/tcp   tudou-tomcat
[root@tudou tudou]# 

可以看到有 8080/tcp 但是却无法访问到tomcat的主界面???

Docker 容器高级操作_第1张图片

原因 : 这里是容器的端口,并不是宿主机的端口,需要映射到宿主机方可访问。

端口映射

docker run -d -p 8080:8080/tcp–name tudou-tomcat tomcat:8.0

  • -p:端口映射操作
  • 8080:8080/tcp:宿主机端口:容器端口/协议。(协议可不 8080:8080,默认为 tcp
  • -P(大写):在宿主机上随机为应用分配一个49000~49900内未被使用的端口,并映射到容器开放的网络端口。

注意:通常采用-p进行指定端口映射,多个则是多个-p

[root@tudou tudou]# docker rm -f tudou-tomcat
tudou-tomcat 
[root@tudou tudou]# docker run -d -p 8080:8080/tcp --name tudou-tomcat tomcat:8.0
5bc5b04a6f5aacbd8b1b822527ccb78357071a98c90bfdd56c87bfa2709cdfea
[root@tudou tudou]# docker ps -a | grep tomcat
bbc579ce6fec  tomcat:8.0  "catalina.sh run"  6 seconds ago  Up 5 seconds  0.0.0.0:8080->8080/tcp  tudou-tomcat
[root@tudou tudou]#

发现容器端口映射变成了 0.0.0.0:8080->8080/tcp, 这就意味着容器的 8080 已经映射到宿主机的 8080

[root@tudou tudou]# netstat -ano| grep 8080
tcp6       0      0 :::8080        :::*         LISTEN      off (0.00/0/0) 

经检查发现。宿主机的 8080 端口处于监听状态,那么此时即可访问 Tomcat首页

Docker 容器高级操作_第2张图片

查看端口

docker port idOrName

  • port:查看端口操作。
  • idOrName : 容器名称或者容器ID。
[root@tudou tudou]# docker port tudou-tomcat
8080/tcp -> 0.0.0.0:8080
# 容器端口 ->  宿主机端口

查看进程

docker top idOrName

  • top:查看进程操作。
  • idOrName: 容器名称或者容器ID。
[root@tudou tudou]# docker top tudou-tomcat
UID      PID      PPID     C     STIME     TTY    TIME             CMD
root     15837    15820    0     12:17     ?      00:00:03        /docker-java-home/jre/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start

可以清楚看到,容器内跑的进程详细信息 用户 进程ID 执行命令 等等。

文件挂载 (可用来动态修改容器内文件内容立即生效)

docker run -d -p 8080:8080/tcp -v /home/tudou/tudou:/usr/local/tomcat/webapps/ --name tudou-tomcat tomcat:8.0

  • -v:容器挂载卷:-v 主机目录:容器目录(将宿朱继文件或者目录挂载到容器内
注意:
    1. 容器目录不可以为相对路径
    2. 宿主机目录如果不存在,则会自动生成
# 创建/home/tudou/tudou
[root@tudou tudou]# pwd
/home/tudou/tudou
# 再创建tudou,之下创建index.html
[root@tudou tudou]# cat tudou/index.html 
<html>
<head>
<title>index</title>
</head>
<body style="text-align:center"&

你可能感兴趣的:(docker,容器,运维,容器操作)