端口镜像

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 第三步:查看端口

利用Dockerfile定制你的容器

吃可爱长大的小学妹 提交于 2019-11-27 19:22:41
1. Dockerfile基础命令讲解与演示 在一个空白目录中,建立一个文本文件,并命名为 Dockerfile: $ mkdir xuegod $ cd xuegod $ touch Dockerfile (vim Dockerfile) 其内容为: FROM nginx RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html 这个 Dockerfile 很简单,一共就两行。涉及到了两条指令, FROM 和 RUN 。 FROM 指定基础镜像(MANITAINER 作者信息) 所谓定制镜像,那一定是以一个镜像为基础,在其上进行定制。就像我们之前运行了一个 nginx 镜像的容器,再进行修改一样,基础镜像是必须指定的。而 FROM 就是指定基础镜像,因此一个 Dockerfile 中 FROM 是必备的指令,并且必须是第一条指令。 在 Docker Store 上有非常多的高质量的官方镜像,有可以直接拿来使用的服务类的镜像,如 nginx、redis、mongo、mysql、httpd、php、tomcat 等;也有一些方便开发、构建、运行各种语言应用的镜像,如 node、openjdk、python、ruby、golang 等。可以在其中寻找一个最符合我们最终目标的镜像为基础镜像进行定制。

centos

走远了吗. 提交于 2019-11-27 12:49:57
1. Centos 7.2 设置允许连接网络: vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 #编辑配置文件 BOOTPROTO = static ONBOOT = yes IPADDR = 172.16.40.173 NETMASK = 255.255.255.0 GATEWAY = 172.16.40.1 DNS1 = 114.114.114.114 #重启service service network restart 安装软件 yum install net-tools yum install wget yum install vim yum install ntpdate yum -y install lrzsz yum -y install gcc yum -y install gcc-c++ 卸载旧版本 换源 进入到/etc/yum.repos.d/目录: cd /etc/yum.repos.d/ mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum

容器探路-Docker镜像和runtime

…衆ロ難τιáo~ 提交于 2019-11-27 03:42:08
一、什么是容器 容器:是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。开发人员在自己笔记本上创建并测试好的容器,无需任何修改就能够在生产系统的虚拟机、物理服务器或公有云主机上运行。 组成:1、应用程序本身,2、依赖:比如应用程序需要的库或其他软件 二、为什么使用容器 容器和虚机都是为应用提供封装和隔离,但是 容器使软件具备了超强的可移植能力 。虚机:每一个虚机都需要安装一个操作系统,每个操作系统都有kernel,每一个kernel都依赖硬件,而docker仅依赖于库(目前kernel几乎都是X86指令架构),所以虚机内核和host内核是一样的(uname -r) 三、怎么学习和使用docker 1、容器核心架构-组件:Docker 采用的是 Client/Server 架构 a、Docker 客户端 - Client b、Docker 服务器 - Docker daemon c、Docker 镜像 - Image d、Registry e、Docker 容器 - Container 2、镜像 一个image由 manifest 、 image index (可选)、 filesystem layers 和 configuration 四部分组成。 先来看看构成image的四部分的关系图: Filesystem Layer包含了文件系统的信息

【docker虚拟化技术】docker学习笔记

做~自己de王妃 提交于 2019-11-26 19:56:30
1.安装docker Linux下安装docker: sudo apt-get update sudo apt-get install -y docker.io sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker sudo sed -i '$acomplete -F _docker docker'/etc/bash_completion.d/docker 查看docker是的版本,即是否安装上—— docker -v 2.查看docker下的所有镜像—— docker images 3.取镜像的方法——docker pull XXX(镜像名) 比如 docker pull Holle World 表示在 默认的注册服务器(http://hub.docker.com) 上去寻找一个叫Holle world 这个镜像,并 自动获取最新的版 docker pull hello-world:v1 (表示在 默认的注册服务器寻 找Holle—world的仓库, 获取标签为v1的镜像 ) docker pull hello-world:latest( 表示在 默认的注册服务器寻 找Holle—world的仓库, 获取最新的镜像 ) 4.如何在其他的服务器下载镜像呢?( http://dev.aliyun.com

docker镜像制作

南笙酒味 提交于 2019-11-26 17:07:11
1.端口映射 一:容器端口随机映射到物理机的一个端口-P 二:容器的端口映射到物理机的一个特定的端口 -p 80:80 三:容器的端口映射到物理机的一个特定的网卡上的随机端口 -p ip::80 四:容器的端口映射到物理机的一个特定的网卡上的特定端口 -p ip:80:80 2.数据卷—实现数据的持久化 一:bind mount volume -v /ken:/var/www/html 二:docker managerment volume -v /var/www/html 三:基于一个现有的容器 –volumes-from docker使用数据库实现数据持久化演示 第一步:搜索数据库镜像并下载相应的数据库镜像 [root@localhost ~]# docker search mysql 第二步:启动数据库 [root@localhost ~]# docker run -d -v /ken:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123 --name mysql1 mysql -e 指定设置环境变量。MYSQL_ROOT_PASSWORD指定数据库登录的初始密码 第三步:访问数据库 [root@localhost ~]# docker run -it mysql mysql -uroot -p123 -h172.17

构建docker镜像

穿精又带淫゛_ 提交于 2019-11-26 06:24:50
1.创建Docker Hub账号 网址: https://hub.docker.com/ 注册. 登录 $ sudo docker login 2.用docker commit命令创建镜像 创建一个要进行修改的定制容器 $ sudo docker run -i -t ubuntu /bin/bash root@7dfcf4332617:/# 在容器中安装apache软件包 root@7dfcf4332617:/# apt-get -yqq update root@7dfcf4332617:/# apt-get -y install apache2 提交定制容器 $ sudo docker commit 7dfcf4332617 hiekay/apache2 检查新创建的镜像 $ sudo docker images hiekay/apache2 REPOSITORY TAG IMAGE ID CREATED SIZE hiekay/apache2 latest d36fa6c04e5b About a minute ago 205MB 提交另一个新的定制容器 $ sudo docker commit -m="A new custom image" --author="hiekay" 7dfcf4332617 hiekay/apache2:webserver 解析: -m

Docker数据管理与网络通信

*爱你&永不变心* 提交于 2019-11-26 01:51:42
Docker镜像的创建方法 Docker镜像除了是Docker的核心技术之外也是应用发布的标准格式。一个完整的Docker镜像可以支撑一个Docker容器的运行,在Docker的整个使用过程中,进入一个已经定型的容器之后,就可以在容器中进行操作,最常见的就是在容器中安装应用服务,如果要把已经 安装的服务进行迁移,就需要把环境以及搭建的服务生成新的镜像。 创建镜像的方法有三种: 基于已有镜像创建 基于本地模板创建 基于Docherfile创建 基于已有镜像创建 使用docker commit命令,把一个容器里面运行的程序以及该程序的运行环境打包起来生成新对的镜像。 命令格式:docker commit [选项] 容器 ID/ 名称 仓库名称 :[标签] 常用选项: -a :作者信息 -m :说明信息 -p :生成过程中停止容器的运行 [root@localhost ~]# docker ps -a #查看容器的ID CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 06bbfa9e79b8 11426a19f1a2 "/bin/bash" 7 seconds ago Created nostalgic_boyd [root@localhost ~]# docker commit -m "new" -a "daoke"

Dockerfile二进制分离部署LNMP(Centos7)

浪尽此生 提交于 2019-11-25 23:38:44
Dockerfile常用指令: 1、FROM :构建镜像基于哪个镜像 例如:FROM centos 2、MAINTAINER :镜像维护者姓名或邮箱地址 例如:MAINTAINER Sun qiu ming 3、RUN: 构建镜像时运行的shell命令 例如: RUN [ "yum","install","httpd"] RUN yum -y install httpd 4、CMD :运行容器时执行的shell命令 例如: CMD ["/bin/bash"] 5、EXPOSE声明容器的服务端口 例如:EXPOSE 80 443 EXPOSE 声明端口 格式为 EXPOSE <端口1> [<端口2>...]。 EXPOSE 指令是声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务。在 Dockerfile 中写入这样的声明有两个好处,一个是帮助镜像使用者理解这个镜像服务的守护端口,以方便配置映射;另一个用处则是在运行时使用随机端口映射时,也就是 docker run -P 时,会自动随机映射 EXPOSE 的端口。 要将 EXPOSE 和在运行时使用 -p <宿主端口>:<容器端口> 区分开来。-p,是映射宿主端口和容器端口,换句话说,就是将容器的对应端口服务公开给外界访问,而 EXPOSE 仅仅是声明容器打算使用什么端口而已