栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Docker 从入门到实践系列三 - Docker 常用命令,netty源码剖析与实战笔记

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Docker 从入门到实践系列三 - Docker 常用命令,netty源码剖析与实战笔记

  • 镜像删除

  • 容器命令

    • 搜索镜像
  • 下载镜像

  • 运行容器

  • 端口映射

    • 启动做端口映射的容器
  • 端口映射格式

  • 查看端口映射

  • 小结

  • 查看容器

  • 停止容器

  • 启动容器

  • 重启容器

  • 删除容器

  • 其他重要命令

    • 查看容器日志
  • 连接到正在运行容器

  • 在运行的容器中执行命令

  • 查看容器中正在运行进程

  • 查看容器内部细节

  • 容器和宿主机互相拷贝文件

  • 更多操作命令

  • 常用命令小结

[](

)帮助命令


查看docker版本

docker version

查看docker基本信息

docker info

查看具体docker命令的解释

docker --help

[](

)镜像命令


[](

)镜像检索

通常情况下,Docker 的镜像都放在 Docker 的官网 Docker Hub 上,[点此前往官网](

)

docker search 镜像名称:查找镜像,会把相似的结果也查询出来

除了可以在 [Docker Hub](

) 上搜索镜像外,还可以通过命令 docker search xxx 进行搜索,下面以hello-world为例:

docker search hello-world

输出结果

  • NAME:镜像名称

  • DEscriptION:镜像描述

  • STARS:星数(点赞)

  • OFFICAL:是否是官方镜像

  • AUTOMATED:是否是自动构建的

另外,docker search -参数 含义:

  • -f, --filter filter:根据提供的条件过滤输出,比如:docker search -f stars=30 hello-world列出星数不小于30的hello-world镜像;

  • --no-trunc:显示镜像完整描述信息;

  • --limit int:最大搜索结果数(默认 25)

[](

)镜像下载

镜像下载命令为:docker pull [IMAGE_NAME]:[TAG]

其中,IMAGE_NAME:镜像名,TAG :标签,镜像版本,可选的,默认为 latest;

在生产环境中,推荐指定 TAG,选择稳定版本的镜像,具体有哪些版本可以上Docker Hub去查找。

docker pull hello-world

[](

)镜像列表

获取已下载镜像列表命令:docker images

其中,

  • RESPOSITORY:镜像名;

  • TAG:镜像版本,latest 代表最新版;

  • IMAGE_ID :镜像唯一 ID;

  • CREATED :镜像的创建时间;

  • SIZE:镜像的大小。

docker images -参数 含义:

  • -a:all 的简写,列出本地所有镜像(包含中间映像层);

  • -q:只显示镜像 ID;

  • --digests:显示镜像摘要信息;

  • --no-trunc:显示完整的镜像信息。

[](

)镜像删除

删除指定镜像:

docker rmi image-id

删除多个镜像:

docker rmi mysql tomcat

删除所有镜像:

docker rmi $(docker images -q)

强制删除镜像:

强制删除(当前镜像启动的容器正在运行中,是无法正常删除的,可以通过 -f 强制删除)

如果删除时不指定 TAG,默认为最新版 Least。

docker rmi -f image-id

[](

)容器命令


镜像运行起来后,称为容器。 下面以 Tomcat 为例

[](

)搜索镜像

docker search tomcat

[](

)下载镜像

docker pull tomcat

[](

)运行容器

运行tomcat

docker run --name tomcat -d -p 8080:8080 tomcat

如果docker运行Tomcat后访问首页报404,详细解决方案可参考:[https://cloud.tencent.com/developer/article/1704573](

)

最简单的根据镜像新建并启动容器的命令如下:

docker run --name container-name -d image-name

运行一个容器,使用 docker run 命令即可。 另,docker run -参数 含义:

  • -- name:为容器起一个名称;

  • -d:detached,执行完这句命令后,控制台将不会阻塞,可以继续输入命令操作,不会阻塞,也就是启动守护式容器,如果执行 docker run --name tomcat -it tomcat 会进入启动容器的命令控制台,也就是启动交互式容器;

  • -i:以交互方式运行容器,通常与 -t 搭配使用;

  • -t:为容器重新分配一个伪输入终端,通常与 -i 搭配使用;

  • -P:随机端口映射;

  • -p:指定端口映射;

  • image-name:要运行的镜像名称;

[](

)端口映射

[](

)启动做端口映射的容器

容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 -P(大写) 或 -p (小写) 参数来指定端口映射。启动容器的时候如果不指定对应参数,在容器外部是无法通过网络来访问容器内的网络应用和服务的。

Docker 的端口映射通过 -p 或 -P 参数实现,命令如下:

docker run --name tomcat1 -d tomcat

docker run --name tomcat2 -d -p 8888:8080 tomcat

如上,就把主机端口 8888 请求映射到 Docker 容器内部端口 8080 了。

-p 和 -P 区别为:

-P : 随机映射一个49000~49900的端口到内部容器开放的网络端口

-p : 可以指定要映射的IP和端口,但是在一个指定端口上只可以绑定一个容器

执行完这两条命令后,通过 docker ps 查看:

通过 PORTS 可以看出,tomcat2 是做了端口映射的,tomcat1 是没进行映射过的。

分别通过浏览器访问:

http://*.*.*.*:8080/ // tomcat1默认端口;

http://*.*.*.*:8888/ // 做过端口映射的 Tomcat2,8888 会转发请求到 tomcat2 的 8080。

结果如下:

第一个请求是无法请求到的,原因开篇处说过了。

第二个请求是可以正常进行请求的,会由 tomcat2 容器进行处理

[](

)端口映射格式

#指定ip、指定主机port、指定容器port

#ip:hostport:containerport

docker run --name tomcat -d -p 127.0.0.1:8080:8080 tomcat

#指定映射使用一个特定地址,比如 localhost地址 127.0.0.1

#指定ip、未指定主机port、指定容器port

#ip::containerport

docker run --name tomcat -d -p 127.0.0.1::8080 tomcat

#绑定 localhost 的任意端口到容器的 8080 端口,本地主机会自动分配一个端口,还可以使用 udp 标记来指定 udp 端口

docker run --name tomcat -d -p 127.0.0.1:8080:8080/udp tomcat

#未指定ip port、指定主机port、指定容器port

#hostport:containerport

docker run --name tomcat -d -p 8080:8080 tomcat

#将本地的 8080 端口映射到容器的 8080 端口,默认会绑定本地所有接口上的所有地址

[](

)查看端口映射

可以通过如下命令查看容器映射了哪些端口及协议:

docker port container-id

示例:

[root@iZwz9inovbad1hkjy16akvZ tmp]#docker port 1596abf8d8a3

8080/tcp -> 0.0.0.0:8888

8080/tcp -> :::8888

[root@iZwz9inovbad1hkjy16akvZ tmp]#docker port 67751753d5da

如果返回空,则代表没进行端口映射。

[](

)小结

  • 容器有自己的内部网络和 ip 地址,可以使用 docker inspect container-id 可以获取所有的变量

  • Docker 还可以有一个可变的网络配置

  • -p 标记可以多次使用来绑定多个端口 eg. docker run --name tomcat -d -p 8080:8080 -p 3000:80 tomcat

[](

)查看容器

可通过如下命令,查看运行中的容器列表:

docker ps

  • ConTAINER ID:启动时生成的容器 ID;

  • IMAGE:该容器使用的镜像;

  • COMMAND:容器启动时执行的命令;

  • CREATED:容器创建时间;

  • STATUS:当前容器状态;

  • PORTS:当前容器所使用的端口号;

  • NAMES:启动时给容器设置的名称。

另,docker ps -参数含义:

-a:查看所有容器,包括已停止运行的;

-q:静默模式,只显示容器编号;

-l:显示最近创建的容器;

-n 3:显示最近创建的 num(此处为 3)个容器;

--no-trunc:不截断输出,显示

【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】

浏览器打开:qq.cn.hn/FTf 免费领取

完整信息。

[](

)停止容器

通过以下命令来停止运行中的容器:

docker stop container-name/container-id

强制停止容器(类似强制关机):

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/422273.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号