映射端口 -d 后台执行 -p映射端口 --privileged 可以使用systemctl # docker run --privileged -d -p 9000:80 jiqing9006/centos:httpd /sbin/init e2e33ac1fb2acdef86c995c79eb746fb552417b112210bc5353de74a2f63e4e7 访问容器 root@ThinkPad:/home/jiqing# docker ps -q e2e33ac1fb2a root…
一.问题现象 1.现象举例: # 自制的springboot项目的dockerfile # springboot 其实就是一个简单的hello-world程序,写了一个HelloController 做测试 # dockerfile内容: FROM java:8 MAINTAINER shan <test@qq2363581677@163.com> ADD ./demo.jar /demo.jar EXPOSE 8848 CMD java -jar /demo.jar # 构建镜像 docke…
最近偶尔发现一个比较奇怪的现象,netstat 查看监听的服务端口时,却只显示了 tcp6 的监控, 但是服务明明是可以通过 tcp4 的 ipv4 地址访问的,那为什么没有显示 tcp4 的监听呢? 以 sshd 监听的 22 端口为例: # netstat -tlnp | grep :22 tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1444/sshd tcp6 0 0 :::22 :::* LISTEN 1444/sshd 可以看到,netstat 显示表示 s…
今天来系统聊一聊docker的端口,常见的有容器内程序端口.容器端口.主机端口.Dockerfile中EXPOSE端口.docker-compose和docker run中的port等. 貌似很多端口,但连接时真实的端口仅程序端口和主机端口,其他都是对端口的声明,并不会实际开启端口的服务. 下面以nginx和redis镜像为例介绍下这些端口的关系:nginx程序端口80,映射主机端口30080:redis程序端口6379,映射主机端口36379.实际通信如下图 程序端口即容器端口 程序端口即实际…
1.端口映射实现访问容器 1.从外部访问容器应用 在启动容器的时候,如果不指定对应的参数,在容器外部是无法通过网络来访问容器内部的网络应用和服务的. 当容器中运行一些网络应用,要让外部访问这些应用时,可以通过-p或-P参数来指定端口映射.当使用-P(大写P)标记时,Docker会随机映射一个端口到内部容器开放的网络端口(端口范围在Linux系统使用的端口之外,一般都过万): [root@docker ~]# docker run -d --name nginx_1 -P nginx:latest…
当我们停止防火墙后,docker容器启动映射端口可能无法映射端口,这个时候需要重建docker0网桥. 详细的错误是这样的: docker: Error response from daemon: driver failed programming external connectivity on endpoint xid (0fb1bc901c3d3d4db71785fdf6b351ef226ee3daf717c284263717ee89674860): (iptables failed: i…
一般在运行容器时,我们都会通过参数 -p(使用大写的-P参数则会随机选择宿主机的一个端口进行映射)来指定宿主机和容器端口的映射,例如 docker run -it -d --name [container-name] -p : [image-name] 这里是将容器内的80端口映射到宿主机的8088端口 参数说明 -d 表示后台运行容器 -t 为docker分配一个伪终端并绑定到容器的标准输入上 -i 是让容器的标准输入保持打开状态 -p 指定映射端口 在运行容器时指定映射端口运行后,如果想要添…
1.编辑容器的配置文件进行更改端口: docker run 运行启动时 -p 可以指定容器启动映射端口 ( ) 可以编辑配置文件 进行修改:(需要重启docker 服务 不止是是容器 才能生效.只能重启容器还是会覆盖的) 2.查找需要更改端口的容器 docker ps 3.根据 CONTAINER ID 查找 docker 配置文件: (容器文件配置默认  /var/lib/docker/containers) 因为我更改了 docker 默认存储位置.(docker info 可以查看dock…
一.运行一个web应用 首先,下载一个docker镜像: [root@k8s-01 ~]# docker pull training/webapp 运行webapp的容器: [root@k8s-01 ~]# docker run -d -P training/webapp python app.py cb2ea5793288ada7c8be553befab76d7516e4a65999680aefeb531d000888634 参数说明: -d:让容器在后台运行 -P:将容器内部使用的网络端口映…
前言 当一台服务器上部署了多个应用容器,它们直接可能需要相互通信,比如web应用容器需要访问mysql数据库容器. 主机访问容器 通过映射端口的形式我们可以在外部访问容器内的服务 # 将主机的127.0.0.1:5001映射到容器的5000端口 docker run -p 127.0.0.1:5001:5000 training/webapp python app.py # 将主机的80映射到容器的80端口 docker run -p 80:80 training/webapp python a…
一.本地操作 1.如何将 nginx 暴露给外界 创建 nginx 服务器 docker run  --name web -d nginx 查看 nginx 的 ip地址 docker network inspect bridge 2.使用端口映射 在外网也能访问 nginx 删除旧的nginx 将容器的 80 端口 映射到本地的 8888 端口 前面是本地端口 后面是容器端口 docker run  --name web -p 8888:80-d nginx 3.添加部分参数 使 127.0.…
1.运行容器(以Oracle-xe-11g为例) 运行容器时先在虚拟机内映射端口 docker run -d -p 9090:8080 -p 1521:1521 wnameless/oracle-xe-11g 2.映射到windows开发机上 参考链接:https://blog.csdn.net/ken1583096683/article/details/82454332.亲测有效 2.1 service firewalld stop 关闭firewalld 2.2 通过ifconfig查看虚拟…
为何想要动态映射端口呢? 因为刚开始run启动容器时,并不知道里面需要映射哪些端口,等容器已创建了,想映射端口. 当然可以通过先commit成镜像,然后再次run时指定端口,但会生成中间的镜像,对于有轻微洁癖的我是不允许这种情况发生的. 我们可以对比映射前后iptables-save的变化(即没有加-p与加了-p选项后对比): docker run -i -t --name test -p 8080:80 1f4fd79edf6d /bin/bash iptables-save的结果 *nat…
443 8088 22 端口是初始映射端口 [root@SERVER ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 96b2d3c6c99d inits/source1. hours ago Up hours ->/tcp, ->/tcp, ->/tcp elegant_blackwell iptables策略 [root@SERVER ~]# iptables -t nat -L -n Chain…
docker  iptables  端口映射  nat #!/bin/bash pro='tcp' NAT_Host='Host_A' NAT_Port=8080 Dst_Host='Host_B' Dst_Port=80 iptables -t nat -A PREROUTING -m $pro -p $pro --dport $NAT_Port -j DNAT --to-destination $Dst_Host:$Dst_Port iptables -t nat -A POSTROUTIN…
原文链接:Docker创建支持ssh服务的容器和镜像 1. 这里使用的centos作为容器,所以首先下载centos的images # sudo docker pull centos 2. 下载后执行一个centos的容器,这里使用centos6作为我測试的容器 # sudo docker run --name=centos-ssh -i -t centos:centos6 /bin/bash 3. 安装openssh-server服务软件包 # yum install openssh-serv…
在实际项目测试中经常会遇到数据库操作,但是因为公司安全问题,访问数据库往往需要通过跳板机.但通过跳板机,测试效率大打折扣,因此通过使用SSH端口转发,从而达到跨机器直接访问数据库.实际项目中的应用会比下面内容相对复杂一些,但万变不离其宗,基本原理是一样的. SSH简介 SSH是什么? SSH是一种协议,是一种有关如何在网络上构建安全通信的规范.SSH的协议涉及认证.加密.网络上传输数据的完整性.具体而言,SSH具有客户端/服务器(C/S)结构,SSH在计算机之间建立网络连接,并充分保障连接的双方…
一.使用Dockerfile构建centos 1.创建 Dockerfile mkdir centos # 创建一个目录存放之后的Dockerfile,目录名无所谓 cd centos # 进入目录 vi Dockerfile # 创建Dockerfile 将如下内容填入Dockerfile中然后存盘退出 FROM docker.io/centos MAINTAINER rslai "netlrs@163.com" RUN yum update -y \ && yum…
可以ssh连接的centos容器 参考:http://blog.csdn.net/mexel310/article/details/51705777 一. pull好镜像后,运行容器 1. docker run -d -it <imageID> /bin/bash -i:表示以“交互模式”运行容器 -t:表示容器启动后会进入其命令行 这样就能启动一个一直停留在后台运行的Centos了.如果少了/bin/bash的话,Docker会生成一个Container但是马上就停止了,不会一直运行,即使有…
一直在尝试以官方CentOS镜像为基础,制作基于CentOS的MySQL镜像.但是制作后发现镜像大小已经超过1.5G,这对于一般的Docker镜像来说太臃肿了.Docker Hub官方提供的CentOS镜像才324MB.目前来说我还没有找到什么好的方法把我制作的镜像的体积减下来,所以就先使用官方的吧! 一.下载官方的mysql镜像 docker pull mysql 下载完成后查看镜像: [root@localhost mysql_data]# docker images REPOSITORY…
ubuntu18.04配置nvidia docker和远程连接ssh+远程桌面连接(三) 本教程适用于想要在远程服务器上配置docker图形界面用于深度学习的用户. (三)配置远程桌面连接访问docker容器 第一步:配置远程桌面 开启容器:sudo nvidia-docker run-it -p 10000:22 ufoym/deepo:ssh bash 容器内依次输入如下指令: apt-get install xfce4 apt-get install xubuntu-desktop apt…
启用IPv6支持 在Docker容器或swarm服务中使用IPv6之前,需要在Docker守护程序中启用IPv6支持.之后,您可以选择将IPv4或IPv6(或两者)与任何容器,服务或网络一起使用. 注意:仅在Linux主机上运行的Docker守护程序上支持IPv6网络. 编辑/etc/docker/daemon.json并将ipv6设置为true. { "ipv6": true } 保存文件. 重新加载Docker配置文件. $ systemctl reload docker 您现在可…
之前曾写过docker及jenkins基础使用  https://www.cnblogs.com/xiaochangwei/category/816943.html 现在搭建环境的功能为: 1.jenkins自动拉取代码打包 2.根据时间戳生成docker镜像 3. 启动生成的镜像 3.1.可以指定启动的名字和访问路径 3.2.可以指定端口 3.3.如果端口或名字已经被占用,则直接停掉之前启动的 4.访问的时候不要输入端口,直接为 测试环境ip/应用名字 根据要求,采用了下列步骤方法: 1.构建…
文章简介 asp.net core webapi容器与Mysql容器互联(network方式) docker compose方式编排启动多个容器 asp.net core webapi容器与Mysql容器互联(network方式) -- Docker的基础知识(镜像,容器,仓库等概念,还有基本命令)就不再提了,可以从github查看相关中文文档(https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md). 首先,我们创建一个a…
原文:docker 安装redis 并配置外网可以访问 - flymoringbird的博客 - CSDN博客 端口映射,data目录映射,配置文件映射(在当前目录下进行启动). docker run -p 6379:6379 --name myredis -v $PWD/conf/redis.conf:/etc/redis/redis.conf -v $PWD/data:/data -d redis:3.2 redis-server  /etc/redis/redis.conf --appen…
前言 在上节的内容中,我们已经通过一个简单的实例,将Docker-compose 进行了实际的应用.这一小节中.我们将通过学习和了解,着重认识容器的编排,上一节只算是一个小小的测试.在这一节中.我们将用最常见的技术. Springboot 作为后端应用 Nginx 作为反向代理 Mysql 持久化数据 Springboot 后端应用 引入JPA支持,以及MySQL的驱动 <dependency> <groupId>org.springframework.boot</group…
环境centos7 一.准备工作 docker pull ubuntu:18.04 docker run -it ubuntu:18.04 bash 二.配置软件源apt-get update,如果系统时间不对很可能出现上篇博文所示错误,参考https://www.cnblogs.com/xiaoyao-001/p/11101489.html 三.安装和配置SSH服务 安装SSH服务,apt-get install openssh-server,需要点时间安装完成最后几行如下: 要正常启动ssh…
如果你还想从头学起 Docker,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1870863.html 搭建 Gitlab 容器 搜索 gitlab 镜像 docker search gitlab 创建 gitlab 容器 前置操作 由于是 docker 镜像运行, 所以我们需要把 gitlab 容器的配置.数据.日志存到容器外面,即将其目录映射到主机上 先准备三个目录: #切到srv目录 cd /srv #创建gitlab文件夹…
转载请注明出处:点我 由于Docker自身的网络的原因,想要在多主机间的容器之间进行通信是比较麻烦的事情.可以利用Ambassador容器来实现这一功能. 基本原理: 利用Ambassador来实现主机间容器进行通信时,需要在两台需要通信的容器的主机上都启动Ambassador容器.由Ambassador容器提供数据转发服务. 当客户端主机上的容器client_container想要同服务器端主机上的容器server_container通信时,client_container容器直接访问同一台主…
看到了这篇老外的博客:Over 30% of Official Images in Docker Hub Contain High Priority Security Vulnerabilities于是,结合最近爆出的redis未授权访问导致可远程获得服务器权限漏洞,在docker容器中验证官方pull的镜像是否存在漏洞. 我的docker安装在centos7的虚拟机中,版本1.9,redis镜像从官方pull ubuntu/redis,首先启动redis容器: Kali虚拟机中登录存在漏洞的r…