Docker系列03-容器Docker镜像的使用
Docker镜像的使用
前两个章节,介绍了容器的相关基础知识,这章我们介绍镜像的简单使用,镜像hub里面有来自于全世界贡献的各种镜像,包括一些入门和学习练手的镜像,今天我们使用的正式其中一个用于学习练习的镜像(https://github.com/docker-training/webapp)
下载启动容器
#先把镜像pull下来
docker pull training/webapp
#查看当前镜像列表
docker images
#可以看到我们刚才下载的webapp
REPOSITORY TAG IMAGE ID CREATED SIZE
training/webapp latest 6fae60ef3446 4 years ago 349MB
#运行webapp实例
#-d是后台运行
#-P是实例网络映射到本机,因为这个webapp是会监听tcp端口,加上这个参数容器里面的监听tcp端口跟本机的tcp端口,这样我们就直接在本机访问对应的端口就可以跟容器实例监听的端口建立连接
docker run -d -P training/webapp python app.py
#查看运行实例情况
docker ps -a
#返回信息
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5da522ffe229 training/webapp "python app.py" 2 minutes ago Up 2 minutes 0.0.0.0:1024->5000/tcp laughing_pike
#从返回的信息可以看到,容器里面监听的5000端口映射到本机的1024端口,我们试试访问本机的1024端口看看
curl http://127.0.0.1:1024/
#返回
Hello world!
进入容器环境
上面的例子是在外部访问容器,我们试试进入容器环境里面看看具体情况。
#查看当前在运行的容器实例列表
docker ps -a
#返回信息
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5da522ffe229 training/webapp "python app.py" 8 minutes ago Up 8 minutes 0.0.0.0:1024->5000/tcp laughing_pike
#我们要进入的容器实例ID是 5da522ffe229
#使用exec命令,同时运行bash,-it是交互命令终端
docker exec -it 5da522ffe229 /bin/bash
#运行之后,我们会发现,命令行终端已经发生变化,进入了实例 5da522ffe229 里面
root@5da522ffe229:/opt/webapp#
#运行一下netstat看看监听情况
netstat -lnp
#看到了,我们之前运行的webapp监听了5000的内部端口
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:5000 0.0.0.0:* LISTEN -
#我们试着运行访问5000端口,提示 bash: curl: command not found
#因为我们进入了容器的隔离环境,还没有装curl
curl http://127.0.0.1:5000/
#我们先安装curl
apt-get update; apt install -y curl
#安装成功之后,再运行
curl http://127.0.0.1:5000/
#这次可以成功返回信息
Hello world!
#退出当前容器环境,命令行提示又回到本机了
ctrl+d
其他使用功能
#查看指定容器实例的log日志
docker logs -f 5da522ffe229
#查看指定容器实例的top
docker top 5da522ffe229
#查看指定容器的端口信息
docker port 5da522ffe229
#查看指定容器的配置信息
docker inspect 5da522ffe229
————————————————
Docker系列03-容器Docker镜像的使用的更多相关文章
- docker系列四之docker镜像与容器的常用命令
docker镜像与容器的常用命令 一.概述 docker的镜像于容器是docker中两个至关重要的概念,首先给各位读者解释一下笔者对于这两个概念的理解.镜像,我们从字面意思上看,镜子里成像,我们人 ...
- docker 批量删除容器和镜像
docker 批量删除容器和镜像 1,删除单个镜像或者容器 docker rmi 镜像ID/镜像名字:TAG docker rm 容器ID/容器名字 1.停止所有的container,这样才能 ...
- Docker系列02: 容器生命周期管理 镜像&容器
A) Docker信息1. 查看docker运行状态 systemctl status docker docker.service - Docker Application Container Eng ...
- Docker系列(二)镜像下载、操作容器、镜像导入导出等操作
一.镜像操作 列出镜像 $sudo docker images 从dockerhub检索image $docker search image_name 下载image $docker pull ima ...
- Docker系列(三):Docker自定义容器镜像
将容器编程镜像: docker commit [repo:tag] 网上有这句话:当我们在制作自己的镜像的时候,会在container中安装一些工具.修改配置,如果不做commit保存 起来,那么co ...
- Docker系列03—Docker 基础入门
本文收录在容器技术学习系列文章总目录 1.概念介绍 1.1 容器 1.1.1 介绍 容纳其它物品的工具,可以部分或完全封闭,被用于容纳.储存.运输物品.物体可以被放置在容器中,而容器则可以保护内容物. ...
- Docker系列10—容器编排工具Docker Compose详解
本文收录在容器技术学习系列文章总目录 1.Docker Compose 概述 Compose是一个用于定义和运行多容器Docker应用程序的工具.使用Compose,您可以使用Compose文件来配置 ...
- Docker系列01—容器的发展历程---Docker的生态圈
本文收录在容器技术学习系列文章总目录 Docker 和容器技术的发展可谓是日新月异,本文试图以全局的视角来梳理一下 docker 目前的生态圈.既然是概览,所以不会涉及具体的技术细节. Docker ...
- docker入门(二)容器与镜像的理解
10张图带你深入理解Docker容器和镜像 申明:此篇文章是转载的(原文地址http://dockone.io/article/783),今天意外发现已经有人转载了(复制了),希望大家关注原创 原本打 ...
- docker入门(二)容器与镜像的关系
[编者的话]本文用图文并茂的方式介绍了容器.镜像的区别和Docker每个命令后面的技术细节,能够很好的帮助读者深入理解Docker. 这篇文章希望能够帮助读者深入理解Docker的命令,还有容器(co ...
随机推荐
- 报错 Please make sure you have the correct access rights and the repository exists (git 添加ssh密钥 )
1.设置Git的user name和email $ git config --global user.name "wubaiwan" $ git config --global u ...
- XML与JSON解析
[XML简介] XML在线校验工具: http://tool.oschina.net/codeformat/xml 可扩展标记语言(EXtensible Markup Language) 一种标记语言 ...
- [TimLinux] JavaScript AJAX接收到的数据转换为JSON格式
1. 接收数据 AJAX接收数据是通过xhr.responseText属性,这是一个属性不是一个方法,这个属性得到的数据为字符串. 2. 字符串内容 当服务器发送的是一个JsonResponse({' ...
- UVA-11107 Life Forms(求出现K次的子串,后缀数组+二分答案)
题解: 题意: 输入n个DNA序列,你的任务是求出一个长度最大的字符串,使得它在超过一半的DNA序列中出现.如果有多解,按照字典序从小到大输入所有解. 把n个DNA序列拼在一起,中间用没有出现过的字符 ...
- BZOJ 3108: [cqoi2013]图的逆变换
3108: [cqoi2013]图的逆变换 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 627 Solved: 415[Submit][Statu ...
- Spring Cloud第八篇 | Hystrix集群监控Turbine
本文是Spring Cloud专栏的第八篇文章,了解前七篇文章内容有助于更好的理解本文: Spring Cloud第一篇 | Spring Cloud前言及其常用组件介绍概览 Spring Clo ...
- 支付宝支付功能(使用支付宝sdk)
1.准备参数 新建一个公共参数配置类NewAlipayconfig (可将参数存放到config配置文件中读取) public class NewAlipayconfi ...
- Java编译器API简介
今天给大家分享的是Java编译器API简介,文章部分内容摘自[优锐课]学习笔记. Java编译器API Java编译器API是Java模块(称为java.compiler)的一部分.该模块包括语言模型 ...
- windows系统下sublime text3开发工具前端配置
1.打开https://www.sublimetext.com/3下载最新版Sublime Text 3安装. 2.打开packagecontrol安装方法按提示安装packagecontrol,或者 ...
- python学习-price
"""登录功能:用户名和密码存在{'name':'huahua','pwd':'123456'}字典中,通过控制台输入用户名和密码判读是否正确,然后给出对应的提示消息:登 ...