端口映射

Docker入门(三):容器命令

穿精又带淫゛_ 提交于 2019-11-29 21:31:30
文章目录 一、容器生命周期管理 1.1 创建容器 docker run 1.2 删除容器 docker rm 1.3 杀掉运行中的容器 docker kill 1.4 启动/关闭/重启容器 1.5 在运行的容器中执行命令 docker exec 二、容器操作 2.1 列出所有容器 docker ps 2.2 列出指定容器的端口映射 docker port 三、容器根文件操作 3.1 从容器生成一个新的镜像 docker commit 3.2 主机与容器之间数据拷贝 docker cp Docker CE安装: https://blog.csdn.net/qq_39680564/article/details/86545098 一、容器生命周期管理 1.1 创建容器 docker run 说明 创建一个新的容器并运行一个命令 参数 -d:后台运行容器,并返回容器ID -i:以交互模式运行容器,通常与 -t 同时使用 -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用 -p:指定端口映射,格式为:主机端口:容器端口(可映射一组端口) -v:指定目录映射,格式为:主机目录:容器目录 --name = "newname" : 为容器指定一个名称 --privileged :使用该参数,container内的root拥有真正的root权限 --rm:退出时自动删除容器 实例

端口映射

风流意气都作罢 提交于 2019-11-29 11:17:21
  我们服务器大部分都是内部局域网中,并且分配了个内部地址。如果外部请求访问我们内部的服务器,该如何去做呢?   这边主要用到了端口映射。端口映射又叫端口转发,又叫虚拟服务器,。   端口映射就是将外网主机的IP地址的一个端口映射到内网中一台机器,提供相应的服务。当用户访问该IP的这个端口时,服务器自动将请求映射到对应局域网内部的机器上。端口映射有动态和静态之分。 通俗来讲,端口映射是将一台主机的内网(LAN)IP地址映射成一个公网(WAN)IP地址,当用户访问提供映射端口主机的某个端口时,服务器将请求转移到本地局域网内部提供这种特定服务的主机;利用端口映射功能还可以将一台外网IP地址机器的多个端口映射到内网不同机器上的不同端口。 端口映射功能还可以完成一些特定代理功能,比如代理POP,SMTP,TELNET等协议。理论上可以提供65535(总端口数)-1024(保留端口数)=64511个端口的映射。   端口映射分为动态和静态。动态端口映射:内网中的一台电脑要访问网站,会向NAT网关发送数据包,包头中包括对方网站IP、端口和本机IP、端口,NAT网关会把本机IP、端口替换成自己的公网IP、一个未使用的端口,并且会记下这个映射关系,为以后转发数据包使用。然后再把数据发给网站,网站收到数据后做出反应,发送数据到NAT网关的那个未使用的端口,然后NAT网关将数据转发给内网中的那台电脑

六、Docker核心技术之网络管理

自闭症网瘾萝莉.ら 提交于 2019-11-29 11:15:05
Docker 网络管理简介 为什么需要Docker网络管理 容器的网络默认与宿主机、与其他容器都是相互隔离。 容器中可以运行一些网络应用(如nginx、web应用、数据库等),如果要让外部也可以访问这些容器内运行的网络应用,那么就需要配置网络来实现。 有可能有的需求下,容器不想让它的网络与宿主机、与其他容器隔离。 有可能有的需求下,容器根本不需要网络。 有可能有的需求下,容器需要更高的定制化网络(如定制特殊的集群网络、定制容器间的局域网)。 有可能有的需求下, 容器数量特别多,体量很大的一系列容器的网络管理如何 …… 因此容器的网络管理是非常重要的 Docker中有哪些网络驱动模式 Docker有五种网络驱动模式 bridge network 模式(网桥):默认的网络模式。类似虚拟机的nat模式 host network 模式(主机):容器与宿主机之间的网络无隔离,即容器直接使用宿主机网络 None network 模式:容器禁用所有网络。 Overlay network 模式(覆盖网络): 利用VXLAN实现的bridge模式 Macvlan network 模式:容器具备Mac地址,使其显示为网络上的物理设备 Docker 网络管理命令 查看网络 – docker network ls 作用: 查看已经建立的网络对象 命令格式: docker network ls

docker启动容器端口映射错误

冷暖自知 提交于 2019-11-29 02:27:44
今天用docker的swarm搭建了一个集群,在启动主节点的swarm的时候出错了,报的错误是: /usr/bin/docker-current: Error response from daemon: driver failed programming external connectivity on endpoint goofy_bose (317173685c23c029fd5f28b88ecf1ad2ac425e0338a22ba2b3eeec7b945519fd): iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 3375 -j DNAT --to-destination 172.17.0.2:2375 ! -i docker0: iptables: No chain/target/match by that name. 看到这个错误我觉得可能是防火墙的原因,但是我防火墙已经关闭了,后来到网上查了一下,发现关闭防火墙还不行, 还需要重启docker服务,于是执行service docker restart,再一次启动swarm容器,OK成功! 来源: CSDN 作者: Guoshi_Wan 链接: https://blog.csdn.net/Wan_Guo_Shi

docker 基础

混江龙づ霸主 提交于 2019-11-28 23:08:52
docker # 容器: 在隔离环境中运行的一个进程,进程停止,容器销毁(打包软件的容器) -- 隔离的环境拥有自己的系统文件,ip地址,主机名等 -- 程序: 代码或命令 -- 进程: 运行的程序 # 容器和虚拟化的区别 -- kvm 虚拟化: 需要硬件的支持,需要模拟硬件,可云翔在不同的操作系统 -- kvm 模拟硬盘(写数据先写在自己,然后宿主机) -- 可以 # linux 开机启动流程: bios 开机硬件自检 根据bios设置的优先启动项boot 网卡, 硬件,u盘 , 光驱 读取mbr引导 UEFI(gpt分区) mbr硬盘分区信息,内核加载路径 加载内核 启动一个进程 init systemd 系统初始化完成 运行服务 # 容器的启动流程 --- 直接使用宿主机的硬件 共用宿主机的内核 启动第一个进程,直接启动服务 -- 优点: 损耗少,启动快,性能高 -- 缺点: 只能运行linux(windows 起虚拟机,然后运行docker) # 容器发展历程 chroot技术:新建一个子系统 安装docker 网址: https://mirrors.tuna.tsinghua.edu.cn/help/docker-ce/ docker version 用来查看docker 版本 # docker 官方仓库地址 1. 官方仓库: https://hub.docker.com

docker学习之dockerfile

核能气质少年 提交于 2019-11-28 19:20:19
容器端口映射 通过一条命令,运行一个python web容器。 docker run -d -P trainging/webapp python app.py -d 后台运行参数 -P 随机端口映射,宿主机的一个随机端口:映射到容器内暴露的端口 trainging/webapp 运行的镜像名 python app.py 运行容器内的一个app.py脚本文件 dockerfile介绍 ​ 镜像是容器的基础,每次执行docker run的时候都会指定哪个镜像作为容器运行的基础。直接使用来自docker hub的镜像只能满足一定的需求,当镜像无法满足我们的需求时,需要自定制镜像。 ​ 镜像的定制就是定制每一层所添加的配置、文件。如果可以把每一层修改、安装、构建、操作的命令都写入到一个脚本中,用脚本来构建、定制镜像,这个脚本就是dockerfile。dockerfile是一个文本文件,其内容是一条条的指令,每一条指令构建一层,因此每一条指令的内容就是描述该层如何构建的。 dockerfile指令 # FROM指令是指定哪一个系统作为基础镜像 # 制作base image基础镜像,尽量使用官方的image作为base image FROM centos FROM ubuntu:14:04 # 带有tag的base image # 容器元信息,帮助信息,类似于代码注释 LABEL

【Docker端口映射】

二次信任 提交于 2019-11-28 17:30:37
原文: http://blog.gqylpy.com/gqy/329 Docker端口映射即将容器内开放的端口映射到宿主机端口,以实现外部网络的访问. 首先,我们先下载用于测试端口映射的镜像: [root@fedora ~]# docker pull training/webapp 下载完成后,开始下面的操作. 随机映射端口 执行如下命令将容器的5000端口随机映射到宿主机端口: [root@fedora ~]# docker -d -P training/webapp python app.py 映射后可查看端口映射信息: [root@fedora ~]# docker port inspiring_mcnulty 5000/tcp -> 0.0.0.0:32768 # 容器的5000端口被映射到了宿主机的32768端口 查容器内的进程信息: [root@fedora ~]# docker top b0b UID PID PPID C STIME TTY TIME CMD root 4676 4656 0 08:20 ? 00:00:00 python app.py 监视容器日志: [root@fedora ~]# docker logs -f 9505707c12ad 打开浏览器访问: 映射到指定端口 执行如下命令将容器的5000端口映射到宿主机端口的9000端口: [root

Docker 安装 Nginx

时光毁灭记忆、已成空白 提交于 2019-11-28 15:35:27
更多相关教程请移步 https://www.runoob.com/docker/docker-tutorial.html docker pull nginx 命令安装 查找 Docker Hub 上的 nginx 镜像 runoob@runoob:~/nginx$ docker search nginx NAME DESCRIPTION STARS OFFICIAL AUTOMATED nginx Official build of Nginx. 3260 [OK] jwilder/nginx-proxy Automated Nginx reverse proxy for docker c... 674 [OK] richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable ... 207 [OK] million12/nginx-php Nginx + PHP-FPM 5.5, 5.6, 7.0 (NG), CentOS... 67 [OK] maxexcloo/nginx-php Docker framework container with Nginx and ... 57 [OK] ... 这里我们拉取官方的镜像 $ docker pull nginx 等待下载完成后,我们就可以在本地镜像列表里查到

如何修改运行中的docker容器的端口映射

荒凉一梦 提交于 2019-11-28 11:26:10
在docker run创建并运行容器的时候,可以通过-p指定端口映射规则。但是,我们经常会遇到刚开始忘记设置端口映射或者设置错了需要修改。当docker start运行容器后并没有提供一个-p选项或设置,让你修改指定端口映射规则。那么这种情况我们该怎么处理呢?今天Docker君教你如何修改运行中的docker容器的端口映射? 方法一:删除原有容器,重新建新容器 这个解决方案最为简单,把原来的容器删掉,重新建一个。当然这次不要忘记加上端口映射。 优缺点:优点是简单快捷,在测试环境使用较多。缺点是如果是数据库镜像,那重新建一个又要重新配置一次,就比较麻烦了。 方法二:修改容器配置文件,重启docker服务 容器的配置文件路径: /var/lib/docker/containers/[hash_of_the_container]/hostconfig.json 其中的hashofthecontainer是docker镜像的hash值,可以通过docker ps或者docker inspect containername查看。(CONTAINER ID就可以看出来) 如上图,文件中其中有一项是PortBindings,其中8080/tcp对应的是容器内部的8080端口,HostPort对应的是映射到宿主机的端口9190。8361/tcp对应的是容器内部的8361端口

Docker端口映射及创建镜像演示(二)

佐手、 提交于 2019-11-28 03:11:37
Docker暴露容器方法 第一种:将容器中的一个端口映射成宿主机中的一个随机端口 第二种:将容器中的一个端口映射成宿主机中的一个端口 第三种:将容器中的一个端口映射成宿主机中的一个特定网卡上的随机端口 第四种:将容器中的一个端口映射成宿主机中的一个特定网卡上的一个端口 【使用多次-p选项可以实现暴露多个端口】 Docker端口映射的四种方法使用演示 第一种:将容器中的一个端口映射成宿主机中的一个随机端口 下面的操作确保虚拟机是在桥接模式 第一步:下载httpd镜像 [root@ken ~]# docker pull httpd [root@ken ~]# docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE httpd latest 2a51bb06dc8b 12 days ago 132MB redis latest 55cb7014c24f 5 months ago 83.4MB 第二步:启动httpd容器 –name: 指定容器名 -d: 后台运行 -P: 大写的P,映射随机端口(暴露容器内所有端口,映射到宿主机的随机端口) –rm: 表示退出容器时删除容器 [root@ken ~]# docker container run --name httpd1 -d -P --rm httpd 第三步:查看端口