Docker--容器和镜像的使用

版权声明:猿友们共同进步。ps:博客中有不当之处,还请不吝指教。转载也请注明出处哈: https://blog.csdn.net/CSDN___LYY/article/details/83042592

一:容器的使用

  • 使用容器我们可以通过Docker客户端进行操作,使用Docker命令我们可以看到所有的客户端命令

# docker      //可以看到简洁版的

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

# docker command --help  //详细了解command命令的用法
  • 使用Docker运行一个web应用

# 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运行的结果。

  • 显示容器的程序日志、

# docker logs 容器Id或者容器名
//静态显示容器的运行日志

# docker logs -f  容器Id或者容器名
//动态显示容器的运行日志
  • 查看容器内部运行的进程

# docker top 容器Id或者容器名
//显示容器内部运行的进程,显示结果如下:

UID             PID             PPID            C               STIME           TTY             TIME            CMD

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

。。。。。。。
  • 检查容器,显示容器的所有信息

# 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",

        .....................

  • 停止容器

# docker stop 容器Id或者容器名
  • 启动与重启容器

# docker start  容器Id或者容器名
//启动已经被停止的容器

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

# docker ps -l 
//显示最后一个创建的容器
  • 删除不需要的容器

# docker rm 容器Id或者容器名
//删除容器,注意:删除的容器必须是非运行状态的,否则会删除不成功报错,

二:镜像的使用

  • 列出镜像列表

    • 同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,如ubuntu仓库源里,有15.10、14.04等多个不同的版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。

    • 如果不指定一个镜像的版本标签,例如你只使用 ubuntu,docker 将默认使用 ubuntu:latest 镜像。

docker images

####参数说明:
* REPOSITORY:表示镜像的仓库源
* TAG:镜像的标签
* IMAGE ID:镜像ID
* CREATED:镜像创建时间
* SIZE:镜像大小
  • 获取新的镜像

    • 在本地主机上使用一个不存在的镜像时 Docker 就会自动下载这个镜像。如果我们想预先下载这个镜像,我们可以使用 docker pull 命令来下载它。

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 来寻找适合我们的镜像

docker search httpd

###参数说明:
* NAME:镜像仓库源的名称
* DESCRIPTION:镜像的描述
* OFFICIAL:是否docker官方发布
  • 创建镜像

####方式一:从已经创建的容器中更新镜像,并且提交这个镜像

##:需要有一个容器
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
####:方式二: 使用 Dockerfile 来创建一个新的镜像

请移步:https://blog.csdn.net/CSDN___LYY/article/details/83061188
  • 设置(修改)镜像标签

    • 使用 docker tag 命令,为镜像添加一个新的标签

docker tag 860c279d2fec runoob/centos:dev

##参数介绍:
* docker tag : 创建标签
* 860c279d2fec : 镜像的唯一ID
* runoob/centos:dev : 新的名称与标签
  • 删除镜像

docker rmi <options> <imageID>or<imageName>

##参数options:
* -f :强制删除;
* --no-prune :不移除该镜像的过程镜像,默认移除;
  • 查看镜像变动历史

docker  history  <options> <imageID>or<imageName>

##参数options:
* -H :以可读的格式打印镜像大小和日期,默认为true;
* --no-trunc :显示完整的提交记录;
* -q :仅列出提交记录ID。
  • 镜像归档为tar文件

    • 归档为文件后,便于对镜像进行迁移

docker save -o <filename.tar> <imageID>or<imageName>

##参数:
-o  filename.tar: 指定输出到的文件
  • 从tar文件导入镜像

docker import -m "new image"  file_path

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

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

猜你喜欢

转载自blog.csdn.net/CSDN___LYY/article/details/83042592