前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker--容器和镜像的使用

Docker--容器和镜像的使用

作者头像
洋仔聊编程
发布2019-01-15 17:08:11
7180
发布2019-01-15 17:08:11
举报
文章被收录于专栏:Java开发必知必会

一:容器的使用

  • 使用容器我们可以通过Docker客户端进行操作,使用Docker命令我们可以看到所有的客户端命令
代码语言:javascript
复制
# docker      //可以看到简洁版的

# man docker  //可以看到该命令的详细解释

# docker command --help  //详细了解command命令的用法
  • 使用Docker运行一个web应用
代码语言:javascript
复制
# docker pull training/webapp             
//载入镜像

# docker run -d -P training/webapp python app.py  
//创建容器,后台运行web应用

# docker ps  
//查看进程

# docker run -d -p 4999:5000 training/webapp python app.py   
//使用-p参数设置端接口号,格式:4999(本地4999端口):5000(容器的5000端口,默认的python flask端口。python flask详情:https://blog.csdn.net/u012734441/article/details/62036503) 

# docker port 容器Id或者容器名
//查看容器的端口

//参数:
* -d: 让容器在后台运行。
* -P: 将容器内部使用的网络端口映射到我们使用的主机上。
* -p: 修改本地映射的端口。

docker ps结果为:

可以看到ports字段,显示的为Docker的5000对应了本地的1024端口,我们在浏览器输入:”本地服务器ip:1024 “,就可以看到web运行的结果。

  • 显示容器的程序日志、
代码语言:javascript
复制
# docker logs 容器Id或者容器名
//静态显示容器的运行日志

# docker logs -f  容器Id或者容器名
//动态显示容器的运行日志
  • 查看容器内部运行的进程
代码语言:javascript
复制
# docker top 容器Id或者容器名
//显示容器内部运行的进程,显示结果如下:

UID             PID             PPID            C               STIME           TTY             TIME            CMD

root            13096           13078           0               16:49           ?               00:00:00        python app.py

。。。。。。。
  • 检查容器,显示容器的所有信息
代码语言:javascript
复制
# docker inspect 容器Id或者容器名
//显示Docker 的底层信息。它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息。示例如下:

[

    {

        "Id": "b4e66581cadb896107f1e9edf036bf7174593f544b16f1ffddcd04b8532e2532",

        "Created": "2018-10-12T08:49:26.027911855Z",

        "Path": "python",

        "Args": [

            "app.py"

        ],

        "State": {

            "Status": "running",

            "Running": true,

            "Paused": false,

            "Restarting": false,

            "OOMKilled": false,

            "Dead": false,

            "Pid": 13096,

            "ExitCode": 0,

            "Error": "",

            "StartedAt": "2018-10-12T08:49:26.274568849Z",

            "FinishedAt": "0001-01-01T00:00:00Z"

        },

        "Image": "sha256:6fae60ef344644649a39240b94d73b8ba9c67f898ede85cf8e947a887b3e6557",

        .....................
  • 停止容器
代码语言:javascript
复制
# docker stop 容器Id或者容器名
  • 启动与重启容器
代码语言:javascript
复制
# docker start  容器Id或者容器名
//启动已经被停止的容器

# docker restart 容器Id或者容器名
//重启正在运行的容器

# docker ps -l 
//显示最后一个创建的容器
  • 删除不需要的容器
代码语言:javascript
复制
# docker rm 容器Id或者容器名
//删除容器,注意:删除的容器必须是非运行状态的,否则会删除不成功报错,

二:镜像的使用

  • 列出镜像列表
    • 同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,如ubuntu仓库源里,有15.10、14.04等多个不同的版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。
    • 如果不指定一个镜像的版本标签,例如你只使用 ubuntu,docker 将默认使用 ubuntu:latest 镜像。
代码语言:javascript
复制
docker images

####参数说明:
* REPOSITORY:表示镜像的仓库源
* TAG:镜像的标签
* IMAGE ID:镜像ID
* CREATED:镜像创建时间
* SIZE:镜像大小
  • 获取新的镜像
    • 在本地主机上使用一个不存在的镜像时 Docker 就会自动下载这个镜像。如果我们想预先下载这个镜像,我们可以使用 docker pull 命令来下载它。
代码语言:javascript
复制
docker pull tomcat
#不指定镜像的tag便是下载最新的latest

docker pull tomcat:8
#指定镜像tag
  • 查找镜像
    • 我们可以从 Docker Hub 网站来搜索镜像,Docker Hub 网址为: https://hub.docker.com/
    • 我们也可以使用 docker search 命令来搜索镜像。比如我们需要一个httpd的镜像来作为我们的web服务。我们可以通过 docker search 命令搜索 httpd 来寻找适合我们的镜像
代码语言:javascript
复制
docker search httpd

###参数说明:
* NAME:镜像仓库源的名称
* DESCRIPTION:镜像的描述
* OFFICIAL:是否docker官方发布
  • 创建镜像
代码语言:javascript
复制
####方式一:从已经创建的容器中更新镜像,并且提交这个镜像

##:需要有一个容器
docker run -t -i ubuntu:15.10 /bin/bash

##:在运行的容器内使用 apt-get update 命令进行更新
apt-get update

##:退出容器
exit命令  或者 ctrl + c   

##:通过命令 docker commit来提交容器副本为新镜像
docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2
* -m:提交的描述信息
* -a:指定镜像作者
* e218edb10161:容器ID
* runoob/ubuntu:v2:指定要创建的目标镜像名

##:查看提交的新镜像,创建新镜像完毕
docker images
代码语言:javascript
复制
####:方式二: 使用 Dockerfile 来创建一个新的镜像

请移步:https://blog.csdn.net/CSDN___LYY/article/details/83061188
  • 设置(修改)镜像标签
    • 使用 docker tag 命令,为镜像添加一个新的标签
代码语言:javascript
复制
docker tag 860c279d2fec runoob/centos:dev

##参数介绍:
* docker tag : 创建标签
* 860c279d2fec : 镜像的唯一ID
* runoob/centos:dev : 新的名称与标签
  • 删除镜像
代码语言:javascript
复制
docker rmi <options> <imageID>or<imageName>

##参数options:
* -f :强制删除;
* --no-prune :不移除该镜像的过程镜像,默认移除;
  • 查看镜像变动历史
代码语言:javascript
复制
docker  history  <options> <imageID>or<imageName>

##参数options:
* -H :以可读的格式打印镜像大小和日期,默认为true;
* --no-trunc :显示完整的提交记录;
* -q :仅列出提交记录ID。
  • 镜像归档为tar文件
    • 归档为文件后,便于对镜像进行迁移
代码语言:javascript
复制
docker save -o <filename.tar> <imageID>or<imageName>

##参数:
-o  filename.tar: 指定输出到的文件
  • 从tar文件导入镜像
代码语言:javascript
复制
docker import -m "new image"  file_path

##参数:
* -c :应用docker 指令创建镜像;
* -m :提交时的说明文字;

参考:http://www.runoob.com/docker/docker-command-manual.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018年10月13日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一:容器的使用
  • 二:镜像的使用
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档