当前位置:首页 » 密码管理 » 外网访问docker

外网访问docker

发布时间: 2022-11-19 09:16:34

A. 如何外网访问docker套件在群晖上部署的ubuntu

下载完成后点击启动

然后就会弹出创建该镜像的容器的向导

随便取名字 端口自己按需映射或者索性勾选自动映射

这里按需修改,默认也行

B. Docker安装教程

1.在线安装

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

在线安装方式二

curl -sSL https://get.cloud.io/docker | sh

3.查看Docker

yum list docker-ce --showplicates | sort -r

4.查看Docker版本

docker version

5.启动Docker

systemctl start docker

6.测试Docker是否启动成功

(1).拉取HelloWorld的镜像

docker pull hello-world

(2).运行hello-world镜像

docker run hello-world

看到下面的图就证明安装成功了

docker search redis

2.取最新版的 Redis 镜像

docker pull redis:latest

3.查看本地镜像

docker images

4.运行容器(这是只能本地访问,但是我们需要进行外网访问)

docker run -itd --name redis-test -p 6379:6379 redis

-p 6379:6379:映射容器服务的 6379 端口到宿主机的 6379 端口。外部可以直接通过宿主机ip:6379 访问到 Redis 的服务。

5.通过 redis-cli 连接测试使用 redis 服务。

docker exec -it redis-test /bin/bash

6.查看 Redis是否启动成功

ps aux | grep redis-server

出现如下,则为成功

上面的方法只能本地访问,我们需要的是外网访问redis

4.创建conf 和 data 文件夹

mkdir /usr/local/docker/conf

/usr/local/docker/data

然后再conf下创建redis.conf 的配置文件

放入如下内容,密码可不用配置

6.查看Redis是否启动

docker ps

就可以看到redis了,如果状态是UP,那么就可以确定是安装成功了,启动完成之后,把云服务器的6379端口出入打开,就可以看到了。

这时候我们就可以去使用外部工具进行连接了。

1.拉取镜像

docker pull mysql

2.在opt下创建文件夹

cd /opt/

mkdir mysql_docker

cd mysql_docker/

echo $PWD

3.启动mysql容器,在var/lib/docker/containers/下查看容器

cd /var/lib/docker/containers/

4.查看mysql进程

docker ps -a

5.进入mysql容器,并登陆mysql

docker exec -it mysqlserver bash

mysql -uroot -p

123456

6.开启远程访问权限

use mysql;

select host,user from user;

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

flush privileges;

然后去连接一下数据库测试就可以了

7.关闭docker中mysql容器

docker stop mysqlserver

8.关闭docker

systemctl stop docker

C. docker会直接开放这个端口的外网访问,怎么屏蔽这种特性

1.通过手动更改Iptables来实现
2.docker run -p 内网ip:port:port

D. docker镜像能上网吗

docker 镜像是无法连接外网,只有通过部署这个镜像的容器才能实现访问外网。查看此链接,详细介绍如何使用docker镜像,docker容器等功能,网页链接

E. docker配置web服务后,要怎么让外网访问

直接在路由器你们做个端口映射 把你的192.168.0.254的80端口发布到Internet 就可以使用的你联通的外网IP访问你的网站了 记得采纳啊

F. docker 容器无法访问外网 宿主机是 centos7.2系统 里面所有容器都无法访问外网

在CentOS7中运行NodeJs的容器,发现挂载的本地目录在容器中没有执行权限,经过各种验证和Google搜索,找到了问题的原因,这里做一下记录。原因是CentOS7中的安全模块selinux把权限禁掉了,至少有以下三种方式解决挂载的目录没有权限的问题:
1,在运行容器的时候,给容器加特权:
示例:docker run -i -t --privileged=true -v /home/docs:/src waterchestnut/nodejs:0.12.0
2,临时关闭selinux:
示例:su -c "setenforce 0"
之后执行:docker run -i -t -v /home/docs:/src waterchestnut/nodejs:0.12.0
注意:之后要记得重新开启selinux,命令:su -c "setenforce 1"
3,添加selinux规则,将要挂载的目录添加到白名单:
示例:chcon -Rt svirt_sandbox_file_t /home/docs
之后执行:docker run -i -t -v /home/docs:/src waterchestnut/nodejs:0.12.0

G. centos下docker容器外网怎么访问

当前Ubuntu 系统下的 Docker 的安装包只提供64位。如果你想运行32位的 Docker,你需要。 安装 Docker 通过 apt-get 安装 Docker 简直是小菜一碟。 $ sudo apt-get install docker.io 如果你不是 root 组的用户,你可以把自己加入到 docker 用户...

H. 如何让Windows 8/Windows 10用户也用上Docker

默认情况下Boot2Docker需要安装Virtualbox,而不支持Hype-V,这很麻烦,还得修改BCD引导文件,因为Hyper-V和Virtualbox不兼容。
现在好了,有人将其做成可以支持Hyper-V的光盘版,可以直接下载使用最新的ISO文件。步骤:
1. 首先下载前面所述的ISO文件。
2. 新建虚拟机,选择第一代。

3. 确保虚拟网络能访问外部网络,因为后面需要从外网Docker Hub下载容器映像。

4. 不要新建虚拟硬盘。

5. 然后启动虚拟机,运行ifconfig查看IP地址,比如是192.168.0.113。

6. 接下来关闭虚拟机,在虚拟机里新建虚拟硬盘,并用fdisk进行分区并格式化。然后再创建差异磁盘,为甚要创建差异磁盘,这是为了方便,今后可以每个容器放在独立的差异磁盘里,方便今后测试调试。
7. 为了方便,可以通过Putty等SSH工具连接到Boot2Docker虚拟机,并用docker version查看版本信息。
注意用户名和密码:docker/tcuser

8. 运行以下命令,构建WordPress博客的容器:
docker build -rm -t hualaisi /wordpress git://github.com/jbfink/docker-wordpress.git
其中 hualaisi 可以用任意名称代替。
根据网络速度,等待一段时间,等wordpress下载构建完毕。
9. 运行以下命令,启动WordPress容器,并设置该容器的NAT端口为80:
docker run --name wordpress -d -p 80:80 hualaisi /wordpress

10. 可以运行以下命令查看当前环境里运行的docker容器:
docker ps -a

最后,可以直接在Windows里打开Web浏览器,输入以下地址(注意IP地址和端口号),即可配置并访问构建在docker容器里的WordPress博客。
http://192.168.0.113

I. docker 外网访问不了docker容器

出现问题的原因有3种,
1:你安装docker的服务器没有关闭防火墙,也就是说你访问你安装docker的物理机都访问不了,物理机里的docker就更访问不了了。

2:docker在创建镜像的时候没有做端口映射,这是就出现能访问物理机,但访问不了docker,你可以使用docker ps 查看镜像的端口映射情况。

3:端口映射不正确,如你docker中某一容器的8080端口映射到安装docker物理机的80端口,加入你在镜像里面安装了tomcat,但是你tomcat使用的是8080以外的任意端口,这是你访问物理机ip+80端口也无法访问。

J. 基于 Docker 安装 Nginx,启动运行,外网访问,映射配置文件

基于 Docker 安装 Nginx
查找Nginx镜像
语法:docker search nginx
示例:

获取Nginx镜像

示例:

启动nginx容器实例

说明:--name nginx nginx 第一个nginx是通过--name指定的nginx容器实例的名称,另一个nginx表示nginx仓库的名称。

查看nginx容器实例的进程信息

通过ps -ef | grep nginx查看

进入nginx容器内

杀死nginx容器实例

停止nginx实例

启动nginx容器实例

重启nginx容器实例

移除nginx容器实例

案例
暴露外部端口
基于docker run -d --name nginx nginx方法启动nginx后,Docker 容器并没有对外暴露访问的端口,即无法通过当前主机外部浏览器器访问nginx。那么该怎么样呢?

语法:

-p 80:80:通过-p来指定Docker容器中nginx实例对外开放的端口。本例中,第一个80端口是对外开放的端口,第二个80端口指对外开放的端口映射到容器里的端口号。

示例:

通过当前主机外的浏览器访问nginx,如下图:

指定外部的配置文件
语法:

说明:
-v: 表示挂载一个本机目录或文件到容器里。
-v /develop/nginx/nginx.conf:/etc/nginx/nginx.conf:将/develop/nginx/nginx.conf配置文件挂载到容器中/etc/nginx/nginx.conf这个配置文件中。
-v /develop:/develop:将/develop这个目录挂载到容器里的/develop这个目录里。

示例:

注意事项:指定外部配置文件,同时需要指定nginx的首页面,否则会抛出404错误,原因就是因为nginx找不到配置文件中默认的index页面。
本例中,使用/develop/apps/static/index.html替代了容器里的nginx默认的index页面,同时,-v /develop:/develop挂载根目录即可访问子目录。

指定网络模式:--net=bridge 默认模式

其中8080是指主机的端口,而80是指容器的端口
我们先看一下端口的状态

docker是运行在Linux上的,在Windows中运行docker,实际上还是在Windows下先安装了一个Linux环境,然后在这个系统中运行的docker。也就是说,服务中使用的localhost指的是这个Linux环境的地址,而不是我们的宿主环境Windows。我们可以通过命令:

找到这个Linux的ip地址,一般情况下这个地址是192.168.99.100,然后在Windows的浏览器中,输入这个地址,加上服务的端口即可启用了。

热点内容
随机启动脚本 发布:2025-07-05 16:10:30 浏览:535
微博数据库设计 发布:2025-07-05 15:30:55 浏览:32
linux485 发布:2025-07-05 14:38:28 浏览:310
php用的软件 发布:2025-07-05 14:06:22 浏览:760
没有权限访问计算机 发布:2025-07-05 13:29:11 浏览:437
javaweb开发教程视频教程 发布:2025-07-05 13:24:41 浏览:736
康师傅控流脚本破解 发布:2025-07-05 13:17:27 浏览:249
java的开发流程 发布:2025-07-05 12:45:11 浏览:696
怎么看内存卡配置 发布:2025-07-05 12:29:19 浏览:288
访问学者英文个人简历 发布:2025-07-05 12:29:17 浏览:838