docker stop f 停止镜像
docker run -d -p 8080:80 nginx
netstat
docker run -d -P(所有端口映射到随机端口)
Docker 网络
Docker 网络
Docker网络模式
-- 暂停docker ps 的某个
docker stop 51c
192.168.99.100:8085
记录!!!!
-p 容器开放一个 端口到主机上 默认是空的
-P 开放所有的端口中的随机端口的映射
docker run -d -p 8080(主机端口):80(容器端口) 容器名
docker run -d -P 容器名
netstat -na|grep 8080 查看是否开放端口 listen代表以开放
docker stop 停掉镜像
Linux中用namespace 命名空间进行隔离
PID namespace 隔离进程
mount namespace 隔离文件系统的
network namespace 隔离网络
端口映射
-p 容器开放一个 端口到主机上 默认是空的
-P 开放所有的端口中的随机端口的映射
docker run -d -p 8080(主机端口):80(容器端口) 容器名
docker run -d -P 容器名
netstat -na|grep 8080 查看是否开放端口 listen代表以开放
docker stop 停掉镜像
Docker网络
Docker网络
docker stop *containerID*
停掉容器
修改参数-p为-P大写
则会将所有的Nginx容器的端口映射到主机端口,批量端口的映射方式
docker ps
观察运行结果
到浏览器中访问 localhost:8080
可以直接访问到容器内的nginx服务器
docker ps查看正在运行的docker容器
netstat -na|grep 8080
查看8080端口状态,可以看到,处于listen监听状态
docker run -d -p 8080:80 hub.c.163.com/library/nginx
8080--主机端口,也就是主机访问时,写到url中的端口
80--映射的容器端口,也就是Nginx容器运行时开放的端口是80
Docker容器的网络类型及端口映射图示
配置Docker网络
Nginx容器启动后,还不能从浏览器中直接访问和请求,需要对Docker的网络进行配置。
1-网络类型
Bridge桥接,利用Linux的namespace隔离机制,容器有自己独立的网卡,需要配置。
Host主机 容器不单独配置自己的独立网卡,而是直接使用宿主的网络配置。
None 没有网络,没有网络通讯
2-端口映射
可以将容器的端口与所在宿主的端口做一个映射,当访问宿主端口号时,就相当于在访问容器内的端口。
服务端口启动与设置:
docker run -(启动名) -p (主机端口:容器端口) (容器的名字)
查看服务断口有没有启动:
netstat -na|grep (端口号)
-p 用于映射端口,前面是主机端口,后面是容器端口
网络类型有Bridge、host、none,分别是桥接、主机、无网络
Docker使用了Linux的namespace技术来进行资源隔离,如PID Namespace隔离进程,Mount Namespace隔离文件系统,Network Namespace隔离网络等。一个Docker容器一般会分配一个独立的Network Namespace。
1、docker网络类型:
1.1、bridge模式(桥接):docker默认的网络设置,此模式会为每一个容器分配Network Namespace、设置IP等,并将一个主机上的Docker容器连接到一个虚拟网桥上。
1.2、host模式:容器不会获得一个独立的Network Namespace,而是和宿主机共用一个Network Namespace。容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。
1.3、none模式:Docker容器拥有自己的Network Namespace,但是,并不为Docker容器进行任何网络配置。docker将不会和外界的任何网络进行通讯。
1.4、container模式:新创建的容器和已经存在的一个容器共享一个Network Namespace,而不是和宿主机共享。新创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围等。
2、Docker端口映射
在使用Bridge模式的时候,会涉及到一个问题,Bridge所使用的网路需要一个独立的Namespace,这就需要一种技术使容器内的端口可以在主机上访问,这种技术就是端口映射。Docker可以指定你想把容器内的某个端口可以在容器所在主机上的某一个端口之间进行映射,当你在访问主机上的端口的时候其实就是访问容器内的端口
3、进行访问
3.1、docker启动 -p 的使用: docker run -d -p 主机端口:容器端口 容器的名称
比如:docker run -d -p 8080:80 hub.c.163.com/library/nginx
3.2、停止docker:docker stop 容器Id
3.3、docker启动 -P 的使用(所有的监听端口都会和主机建立一个映射): docker run -d -P 容器名称
Docker run -d -p 8080:80 IMAGE,默认桥接模式小p端口映射
Docker run -d -P(注意这里是大写) IMAGE(容器名称) docker开放所有随机端口映射到容器上
这是在linux环境下的,如果是在windows下安装的docker
docker是运行在Linux上的,在Windows中运行docker,实际上还是在Windows下先安装了一个Linux环境,然后在这个系统中运行的docker。也就是说,服务中使用的localhost指的是这个Linux环境的地址,而不是我们的宿主环境Windows。我们可以通过命令:docker-machine ip default 找到linux的IP地址,一般情况下这个地址是192.168.99.100
docker 开放端口给外部网络访问
docker run -d -p 8080:80 hub.c.163.com/library/nginx
-p(小) 是开放指定的端口,与上面,开本机端口8080映射到nginx的80端口
docker run -d -P hub.c.163.com/library/nginx
-P(大) 开放所有的端口与主机建立映射
docker ps 可以查看进程,并看端口,连接
*、docker使用了Linux的namespace技术来进行资源隔离,如PID Namespace隔离进程,Mount Namespace隔离文件系统,Network Namespace隔离网络等。一个Docker容器一般会分配一个独立的Network Namespace。
1、docker网络类型:
1.1、bridge模式(桥接):docker默认的网络设置,此模式会为每一个容器分配Network Namespace、设置IP等,并将一个主机上的Docker容器连接到一个虚拟网桥上。
1.2、host模式:容器不会获得一个独立的Network Namespace,而是和宿主机共用一个Network Namespace。容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。
1.3、none模式:Docker容器拥有自己的Network Namespace,但是,并不为Docker容器进行任何网络配置。docker将不会和外界的任何网络进行通讯。
1.4、container模式:新创建的容器和已经存在的一个容器共享一个Network Namespace,而不是和宿主机共享。新创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围等。
2、docker端口映射
在使用Bridge模式的时候,会涉及到一个问题,Bridge所使用的网路需要一个独立的Namespace,这就需要一种技术使容器内的端口可以在主机上访问,这种技术就是端口映射。Docker可以指定你想把容器内的某个端口可以在容器所在主机上的某一个端口之间进行映射,当你在访问主机上的端口的时候其实就是访问容器内的端口
3、进行访问
3.1、docker启动 -p 的使用: docker run -d -p 主机端口:容器端口 容器的名称
比如:docker run -d -p 8080:80 hub.c.163.com/library/nginx
3.2、停止docker:docker stop 容器Id
3.3、docker启动 -P 的使用(所有的监听端口都会和主机建立一个映射): docker run -d -P 容器名称
docker run -d -p 8080:80 IMAGE,默认桥接模式小p端口映射 docker run -d -P IMAGE docker开放所有随机端口映射到容器上
*、docker使用了Linux的namespace技术来进行资源隔离,如PID Namespace隔离进程,Mount Namespace隔离文件系统,Network Namespace隔离网络等。一个Docker容器一般会分配一个独立的Network Namespace。
1、docker网络类型:
1.1、bridge模式(桥接):docker默认的网络设置,此模式会为每一个容器分配Network Namespace、设置IP等,并将一个主机上的Docker容器连接到一个虚拟网桥上。
1.2、host模式:容器不会获得一个独立的Network Namespace,而是和宿主机共用一个Network Namespace。容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。
1.3、none模式:Docker容器拥有自己的Network Namespace,但是,并不为Docker容器进行任何网络配置。docker将不会和外界的任何网络进行通讯。
1.4、container模式:新创建的容器和已经存在的一个容器共享一个Network Namespace,而不是和宿主机共享。新创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围等。
2、进行访问
2.1、docker启动 -p 的使用: docker run -d -p 主机端口:容器端口 容器的名称
2.2、停止docker:docker stop 容器Id
2.3、docker启动 -P 的使用(所有的监听端口都会和主机建立一个映射): docker run -d -P 容器名称
docker网络
docker 网络,共享网卡,端口映射,网桥