CentOS 7安装docker 及docker 不能被外网访问的问题

这篇具有很好参考价值的文章主要介绍了CentOS 7安装docker 及docker 不能被外网访问的问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

uname -r 查看linux内核版本。要求linux内核版本是3.1.0以上。

netstat -tuln | grep 53  查看端口

docker安装:

以下是下载最新的docker的方式:

对于 CentOS 系统:

  1. 安装所需的软件包:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

2.设置 Docker 的存储库:

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

3. 安装 Docker:

sudo yum install docker-ce docker-ce-cli containerd.io

4.启动 Docker 服务:

sudo systemctl start docker

5.验证 Docker 是否正确安装,运行以下命令检查 Docker 版本:

docker version

随机启动

sudo chkconfig docker on

或者

#安装 yum 源 docker 的

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

#安装 docker

yum -y install docker-ce-18.06.1.ce-3.el7

#启动

docker systemctl enable docker && systemctl start docker

#效验安装

docker -version

注意:

镜像:

docker的一些镜像文件一般都放在宿主机的/var/lib/docker/这个文件下面。
cd /var/lib/docker/

centos7docker网络问题,docker,linux,docker,linux,运维

容器

容器放在containers中

centos7docker网络问题,docker,linux,docker,linux,运维

 centos7docker网络问题,docker,linux,docker,linux,运维

进入容器的文件夹可以看看有很多文件

du -sh *

查看各个文件的大小

centos7docker网络问题,docker,linux,docker,linux,运维

 可以看到其实每个文件都不大,就几十KB大小。

但是当我们看到docker images 的时候是很大很大的

centos7docker网络问题,docker,linux,docker,linux,运维

 这是为什么呢?

Docker 使用  (仓库  容器   镜像)

镜像相关

搜索镜像: docker search java   ( 和在https://hub.docker.com/网站中搜索的结果相同,这个地址就是docker的仓库)

下载镜像:docker pull java:8

                  docker pull nginx:1.14

列出本地镜像:docker images

删除镜像:docker rmi java:8

centos7docker网络问题,docker,linux,docker,linux,运维

容器相关

centos7docker网络问题,docker,linux,docker,linux,运维

新建并启动容器

docker run -d -p 91:80 nginx:1.14    (-d 后台运行  -p )  将nginx:1.14这个镜像放到我们的容器里面                                                                                        并且运行起来

docker run -d -p 91:80 nginx不写tag的话,就是latest

还有一个很重要的点:文件挂载:

docker run -d -p 8088:8081 -v /v5:/v5_log  --name v5 02_service_crud-0.0.1:xss

-v  表示挂载

/log是宿主机的路径

/docker_log是docker容器中的路径

docker中的数据文件变化了,会同步到宿主机中(这里很重要,比如mysql的data数据等等)

docker中的目录如下:

centos7docker网络问题,docker,linux,docker,linux,运维

宿主机上的目录如下:可以按到同步了,无论是哪一方变化了,另外一方都会跟着变化。

 centos7docker网络问题,docker,linux,docker,linux,运维

列出容器

docker ps

启动/停止容器

docker start/stop <容器id>

查看容器信息

docker inspect <容器id>

进入容器

docker container exec -it <容器id> /bin/bash

退出:exit;

查看日志:

docker contailner log <容器id>

centos7docker网络问题,docker,linux,docker,linux,运维

 centos7docker网络问题,docker,linux,docker,linux,运维

 详细说说91->80的含义:每个container起始都是一个小虚拟机,nginx镜像被放在这个小虚拟机上运行,nginx的对应端口就是80,小虚拟机是运行在我们真正的虚拟机上的,我们通过l浏览器访真正虚拟机的91端口其实就能访问docker容器上的80端口进而访问nginx。

使用docker启动springboot项目的jar包

1. vim Dockerfile

注意:这个文件必须这样命名:Dockerfile

2.在Dockerfile文件中:添加以下内容:

centos7docker网络问题,docker,linux,docker,linux,运维

centos7docker网络问题,docker,linux,docker,linux,运维

我参照上面的步骤自己做了一个练习,步骤如下:

1.用Dockerfile文件构建Docker镜像(实际文件中是From java:8u111-jdk )

From java:6b38
Add 02_service_crud-0.0.1-SNAPSHOT.jar /app.jar
EXPOSE 8888
ENTRYPOINT ["java","-jar","/app.jar"]

2.用docker build命令构建镜像

docker build  -t 02_service_crud-0.0.1:xss .

(注意:不要忘记后面的.)(自己的镜像名称还不能含有大写字母)

centos7docker网络问题,docker,linux,docker,linux,运维

 之后docker ps 就看到了本地仓库有了我们自己的镜像,这是一个基于java的Springboot应用

3.启动镜像(注意:基于文章末尾出现的错误,我这里用了--net=host)

docker run --net=host --name=crud-service 02_service_crud-0.0.1:xss -d

 但是我这里报了一个这样的错:

centos7docker网络问题,docker,linux,docker,linux,运维

 ChatGPT一下:

centos7docker网络问题,docker,linux,docker,linux,运维

 于是修改了Dockerfile文件 

 改成了From java:8u111-jdk 

之后将自己刚刚构建的镜像删除,镜像删除之前一定要把对应的容器删除

ok,之后重新构建

centos7docker网络问题,docker,linux,docker,linux,运维

又有问题了

df -h  了一下,磁盘空间被占满了

centos7docker网络问题,docker,linux,docker,linux,运维

du -h -x --max-depth=1 不断地看那个文件被沾满。清理磁盘。之后再次构建。

或者du -sh *

centos7docker网络问题,docker,linux,docker,linux,运维

 构建成功了。

4.启动,浏览器访问

centos7docker网络问题,docker,linux,docker,linux,运维

 =========================================================================

学习docker遇到的问题:

1 .环境:电脑windows11 ,虚拟机centos7 ,  docker 容器 ,nginx镜像

开始我是这样启动:docker run -d -p 91:80

nginx服务是up的

结果在windows上的浏览器中访问不到docker中的nginx  虚拟机上curl也访问不到,这是为啥啊?

宿主机上访问docker还报出来这样会一个错:

centos7docker网络问题,docker,linux,docker,linux,运维

解决方案:

docker run --net=host -d --name=hello_nginx nginx:1.18
使用--net=host即可,但是这样有个问题,

WARNING: Published ports are discarded when using host network mode

如果我再一次运行docker run --net=host -d --name=hello_nginx1 -p 90:80  nginx:1.18 的话,其实这个服务是起不来的,就像下图中的Exited这个服务(当然也有解决方法,比如通过配置文件修改端口,未完待续。。。)

centos7docker网络问题,docker,linux,docker,linux,运维

2 .清理:docker system prune -a

centos7docker网络问题,docker,linux,docker,linux,运维文章来源地址https://www.toymoban.com/news/detail-767329.html

到了这里,关于CentOS 7安装docker 及docker 不能被外网访问的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • docker搭建minio服务器,解决内网穿透后外网无法访问问题

    搭建MinIo 内部搭建的MinIo服务器映射到外网后访问文件资源一直报认证异常,经资料查阅minio有自己一套加密校验逻辑,访问时不可改动其桶名 解决内网穿透minio访问异常问题 通过nginx进行代理,代理时不改变访问路径,外网映射时映射nginx的代理地址 修改Nginx配置

    2024年02月11日
    浏览(50)
  • centos7 安装 docker 不能看菜鸟教程的 docker 安装,有坑

    特别注意 不能看菜鸟教程的 docker 安装,有坑 如果机器不能直接上网,先配置 yum 代理 proxy=http://172.16.0.11:8443 配置文件修改后即刻生效,再执行 yum install 等命令,就可以正常安装软件了。 参考 https://blog.csdn.net/catoop/article/details/127054372 开始安装 1.更新 docker 包数据库 sudo yu

    2024年02月13日
    浏览(33)
  • Centos设置固定IP地址,外网访问

    一般会看到enp0s3的网络配置 主要修改 静态ip:BOOTPROTO=dhcp -- OOTPROTO=static DNS(訪問外網):DNS1=114.114.114.114 本机ip: 192.168.70.121 子网掩码: 255.255.255.0 网关地址: 192.168.70.1

    2024年02月14日
    浏览(52)
  • docker容器访问不了外网

    docker容器访问不了外网,有可能的问题是: 1、路由策略没有开启转发,配置参数 配置参数后检查是否开启了 2、执行iptables -L检查iptables是否有配置策略,没有配置策略,执行下面命令

    2024年02月17日
    浏览(51)
  • Docker容器内部无法访问外网原因之一

    部署了一个Docker环境,宿主机可以访问Internet,启动了一个容器发现容器里的服务无法访问Internet,Docker网络使用的是桥接(bridge)模式。 使用Docker桥接模式启动的容器,宿主机如果可以访问外网,按理来说Docker容器本身也可以访问外网的。其原理:容器网卡与宿主机的dock

    2023年04月25日
    浏览(55)
  • 从0开始,Cloudreve开源云盘在centos7上部署,并可在外网访问(资料整合)

    全程我在网络上收集这些资料,太零碎了,每一个一看就会,一动手就废,而且很多都不能实现我白嫖的梦想 我一个人折腾了快一周,现在可以正常访问手机电脑多端访问 给个赞再走吧 此处为没有公网IP (回去折腾你家宽带去,不知道可以去搜索如何获得)和域名的办法

    2024年02月12日
    浏览(39)
  • 这里做一篇关于wsl2更新到最新版本使用镜像网络,但是docker创建的容器不能被访问的问题(困扰了我一整天)

    在windows2023年9月的一次更新中,wsl2支持了新的网络模式镜像模式,他能够通过localhost地址从wsl2内部连接到windows的127.0.0.1地址 ##相当于是和本地主机拥有同一个ip 原wsl2是不支持的,虽说是net网络模式,可访问主机,主机也可访问wsl2,同时也可上网,但是不能被网络访问,如

    2024年04月16日
    浏览(51)
  • 虚拟机无法访问外网的问题

    配置: 1、虚拟机采用NAT模式进行配置 2、虚拟机IP:192.168.109.101,掩码:255.255.255.0,网关:192.168.109.2 3、虚拟机网络编辑器:网关192.168.109.2,网段192.168.109.0,不启用DHCP 4、VMnet8配置:IP192.168.109.3,掩码255.255.255.0,网关不填 现象: 1、宿主机可以ping虚拟机192.168.109.101,且x

    2023年04月09日
    浏览(45)
  • Docker 在内网服务器通过配置代理访问外网拉取镜像

    该文章引用自:http://roc.havemail.cn/archives/1640.html 感谢作者,我放到这里给自己留个备份。 作者原文介绍了《详解 Docker 的三种网络代理配置》,按理说,在服务器上 直接配置 http_proxy 和 https_proxy 代理 ,所有的服务就都能访问外网了。 但是实际操作过程中,发现配置了这两个

    2024年02月15日
    浏览(43)
  • 阿里云主机安装RocketMQ 集群支持外网访问

    背景:因公司迁移机房,需要在云主机上部署一套和本地一样的rocketMQ,原本计划直接购买云rocketMQ,云rocketMQ仅支持5.0.0,本地rocketMQ 是3.4.6,公司多个服务都使用本地的3.4.6版本的RocketMQ,所以需要再云上搭建一套简易版RocketMQ集群,并支持外网访问。 准备:两台开通外网的

    2024年01月21日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包