在Linux中进行docker网络端口映射

在Linux中有两种安装docker的方法,一种是使用官方安装脚本自动安装docker,另一种是手动安装docker。

容器中可以运行一些应用,要让外部也可以访问这些应用,可以通过“-P或-p”参数来指定端口映射。

当使用“-P”标记时,容器内部端口随机映射到主机的网络端口(端口号:49000~49900),作为容器内部开放的网络端口。

当使用“-p”标记时,容器内部端口绑定到指定主机的网络端口,作为容器内部开放的网络端口,在一个指定端口只可以绑定一个容器。

准备工作

使用官方安装脚本自动安装docker

第一步,安装docker。

第二步,测试Docker。

第三步,设置开机启动。

第四步,查看docker版本。

手动安装docker

第一步,卸载旧版本docker。

第二步,安装gcc依赖。

第三步,使用Docker仓库进行安装。

第四步,安装Docker Engine-Community。

第五步,启动Docker。

第六步,验证Docker Engine-Community是否正确安装。

下载安装镜像

第一步,从Docker Hub上查找tomcat镜像。

命令:docker search tomcat

第二步,从Docker Hub上下载tomcat镜像。

命令:docker pull tomcat

或       docker pull tomcat:latest

第三步,列出本地所有的镜像。

命令:docker images -a

第四步,从docker中删除镜像。

命令:docker rmi 镜像ID或容器名称

第五步,从Docker中强制删除镜像。

命令:docker rmi -f 镜像ID或容器名称

第六步,通过docker images -p查询到的镜像ID来删除所有镜像。

命令:docker rmi -f $(docker images -p)

进行docker网络端口映射

第一步,创建执行网络端口映射容器。

格式:docker run -itd -P --name 容器名 镜像名 /bin/bash

或       docker run -itd -p 宿主机ip:宿主机端口:容器端口 --name 容器名 镜像名 /bin/bash

命令:docker run -itd -P --name tomcat1 tomcat:latest /bin/bash

或       docker run -itd -p 0.0.0.0:8081:8080 --name tomcat1 tomcat:latest /bin/bash

注意:容器端口是容器里面tomcat的端口号,如果没有修改,就必须写8080。

宿主机的端口号可以任意指定。

宿主机ip写成0.0.0.0是因为在服务器中,0.0.0.0指的是本机上的所有IPV4地址,是真正表示“本网络中的本机”。一般在服务端绑定端口的时候可以选择绑定到0.0.0.0,这样服务访问方就可以通过多个ip地址访问服务。

第二步,列出当前所有正在运行的容器。

命令:docker ps

第三步,列出所有的容器。

命令:docker ps -a

第四步,强制停止容器。

命令:docker kill 容器ID或容器名称

第五步,删除容器。

命令:docker rm 容器ID或容器名称

或    docker rm -f 容器ID或容器名称强制

第六步,删除多个容器。

命令:docker rm -f $(docker ps -a -q)

第七步,查看容器内运行的进程。

命令:docker top 容器ID或容器名称

第八步,进入tomcat1容器。

命令:docker exec -it tomcat1 bash

第九步,tomcat1中的webapps文件夹是空的,需要把webapps.dist文件夹里面的内容转移到webapps下。

命令:cp -r webapps.dist/* webapps

第十步,重启容器里的tomcat。

命令:cd bin

./startup.sh

第十一步,访问tomcat页面。

登录网址:http://x.x.x.x:8081/。

如果页面显示无法连接,那么可能是docker版本太低会与Linux系统出现不兼容的情况,这就需要更新docker版本。

# 查看linux内核版本

命令:uname -sr

# 查看docker版本

命令:docker version

# 更新升级所有包同时也升级软件和系统内核

命令:yum update -y

更新docker版本之后,重新启动docker和tomcat,然后登录网址:http://x.x.x.x:8081/。如果页面成功显示“Apache Tomcat/10.1.4”,则说明docker网络端口映射成功。

Docker常用命令

# 查看docker版本

docker version

# 查看docker详细信息

docker info

# 查看docker命令

docker --help

镜像命令

# 查看docker镜像

docker images

# 列出本地所有的镜像

docker images -a

# 只显示镜像ID

docker images -q

# 显示镜像的摘要信息

docker images --digests

# 显示完整的镜像信息

docker images --no-trunc

# 从Docker Hub上查找tomcat镜像

docker search tomcat

# 从Docker Hub上下载tomcat镜像

docker pull tomcat

或 docker pull tomcat:latest

# 提交容器使之成为一个新的镜像

docker commit -m "提交的描述信息" -a "作者" 容器ID 要创建的目标镜像名称:[标签名]

如:docker commit -m "新的tomcat" -a "YM" b10b019a21c2 mytomcat:1.2

# 从Docker中删除hello-world镜像

docker rmi hello-world

# 从Docker中强制删除hello-world镜像

docker rmi -f hello-world

# 从Docker中强制删除hello-world镜像和nginx镜像

docker rmi -f hello-world nginx

# 通过docker images -p查询到的镜像ID来删除所有镜像

docker rmi -f $(docker images -p)

容器命令

# 根据镜像新建并启动容器。IMAGE是镜像ID或镜像名称。

docker run -it -d --name tomcat1 tomcat:latest /bin/bash

# 列出当前所有正在运行的容器

docker ps

# 列出所有的容器

docker ps -a

# 列出最近创建的容器

docker ps -l

# 列出最近创建的3个容器

docker ps -n 3

# 只显示容器ID

docker ps -q

# 显示当前所有正在运行的容器完整信息

docker ps --no-trunc

# 启动容器

docker start 容器ID或容器名称

# 重新启动容器

docker restart 容器ID或容器名称

# 停止容器

docker stop 容器ID或容器名称

# 强制停止容器

docker kill 容器ID或容器名称

# 删除容器

docker rm 容器ID或容器名称

或  docker rm -f 容器ID或容器名称强制

# 删除多个容器

docker rm -f $(docker ps -a -q)

# 查看容器日志

docker logs -f -t --since --tail 容器ID或容器名称

如:docker logs -f -t --since=”2021-09-10” --tail=10 b10b019a21c2

-f:查看实时日志

-t:查看日志产生的日期

--since:只输出指定日期之后的日志

--tail=10:查看最后的10条日志

# 查看容器内运行的进程

docker top 容器ID或容器名称

# 查看容器内部细节

docker inspect 容器ID或容器名称

# 进到容器内

docker attach 容器ID

或  docker exec 容器ID

# 宿主机路径从容器内拷贝文件到宿主机

docker cp 容器ID:容器内的文件路径

卸载docker

# 卸载docker

命令:systemctl stop docker

yum remove docker-ce docker-ce-cli containerd.io

# 删除安装包

命令:yum remove docker-ce

# 删除镜像、容器、配置文件等内容

命令:rm -rf /var/lib/docker

rm -rf /var/lib/containerd

猜你喜欢

转载自blog.csdn.net/weixin_43268590/article/details/128534200