Docker Image 的发布和 Container 端口映射

Docker Image 的发布

方法1:保存 Image 到 tar 包

语法:docker save -o 导出的镜像名.tar 本地镜像名:镜像标签

[root@Docker docker-build]# docker save -o centos-httpd-docker-image.tar centos:httpd
[root@Docker docker-build]# ll -h
total 275M
-rw-r--r--. 1 root root  154 May 17 23:19 Dockerfile
-rw-------. 1 root root 275M May 17 23:37 centos-httpd-docker-image.tar
-rw-r--r--. 1 root root   37 May 17 23:27 index.html
-rwxr-xr-x. 1 root root   29 May 17 23:25 start.sh

<以上代码可复制粘贴,可往左滑>

使用导入本地镜像

[root@Docker docker-build]# docker rmi -f centos:httpd #删除镜像,这里写自己镜像的 ID 或名称

<以上代码可复制粘贴,可往左滑>

[root@Docker docker-build]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              apache              b8822ec8a7bb        27 minutes ago      280MB
centos              latest              470671670cac        4 months ago        237MB
[root@Docker docker-build]# docker load -i centos-httpd-docker-image.tar
Loaded image: centos:httpd
[root@Docker docker-build]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              httpd               85b4a3657ced        8 minutes ago       280MB
centos              apache              b8822ec8a7bb        29 minutes ago      280MB
centos              latest              470671670cac        4 months ago        237MB

<以上代码可复制粘贴,可往左滑>

方法 2:Push Image To Docker Hub 发布到外网

1、Signup on docker hub & create repo 注册一个帐号
https://hub.docker.com/
2、Login to docker hub
# docker login -u userabc -p abc123 -e jaking@gmail.com
3、Push image to docker hub #上传镜像
# docker push centos:httpd
4、Pull image from docker hub #下载镜像
# docker pull userabc/centos:httpd # 用户名/镜像名

<以上代码可复制粘贴,可往左滑>

Container 容器端口映射

实战:Container 端口映射

启动 container

[root@Docker ~]# docker run -d -p 80:80 centos:httpd /bin/bash -c /usr/local/bin/start.sh
cf183879c15bd06523ecb6b5e19aec561d679fa5f3bd1842cb2d2994f0d79b04

<以上代码可复制粘贴,可往左滑>

注:-p 物理机的 80 端口:容器实例的 80 端口 ,把容器中的 80 端口映射到物理机上的 80 端口

另一种启动方式

[root@Docker ~]# cd /docker-build
[root@Docker docker-build]# docker run -d -p 80:80 centos:httpd /bin/bash -c start.sh

<以上代码可复制粘贴,可往左滑>

在物理机上查看容易状态

[root@Docker ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
cf183879c15b        centos:httpd        "/bin/bash -c /usr/l…"   24 seconds ago      Up 23 seconds       0.0.0.0:80->80/tcp   happy_mahavira

<以上代码可复制粘贴,可往左滑>

查看物理机上开启的 80 代理端口

[root@Docker ~]# netstat -pantu | grep 80
tcp6       0      0 :::80                   :::*                    LISTEN      10870/docker-proxy
udp6       0      0 fe80::c43:91ff:fe1a:123 :::*                                7829/ntpd
udp6       0      0 fe80::42:deff:fe9c::123 :::*                                7829/ntpd
udp6       0      0 fe80::250:56ff:fe35:123 :::*                                7829/ntpd

<以上代码可复制粘贴,可往左滑>

测    试

在浏览器输入 http://192.168.10.7

 

 

总    结

以上就是 Docker Image 的发布和 Container 端口映射的操作过程,希望能帮助到大家。

posted @   技术颜良  阅读(323)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
点击右上角即可分享
微信分享提示