(docker)docker容器+镜像基本操作

镜像管理

搜索镜像:
    这种方法只能用于官方镜像库
    搜索基于 centos 操作系统的镜像
    # docker search centos

    按星级搜索镜像:        
    查找 star 数至少为 100 的镜像,默认不加 s 选项找出所有相关 ubuntu 镜像:         
    # docker search ubuntu -f stars=100    
      
拉取镜像:
    # docker pull centos

查看本地镜像:  
    # docker image list
    
查看镜像详情:
    # docker image inspect 镜像id
    
删除镜像:
    删除一个或多个,多个之间用空格隔开,可以使用镜像名称或id
    # docker rmi daocloud.io/library/mysql

    强制删除:--force
    如果镜像正在被使用中可以使用--force强制删除    18.07后不支持强制删除
    # docker rmi docker.io/ubuntu:latest --force

    删除所有镜像:
    # docker rmi $(docker images -q)

只查看所有镜像的id:
    # docker images -q 
  
查看镜像制作的过程:
    相当于dockfile
    # docker history daocloud.io/ubuntu
    
    dive docker_image_id/docker_image_name

容器管理

创建新容器但不启动:
# docker create -it daocloud.io/library/centos:5 /bin/bash

创建并运行一个新Docker 容器:
    同一个镜像可以启动多个容器,每次执行run子命令都会运行一个全新的容器
    # docker run -it --restart=always centos:7 /bin/bash
    如果执行成功,说明CentOS 容器已经被启动,并且应该已经得到了 bash 提示符。
    -i   
        捕获标准输入输出
    -t   
        分配一个终端或控制台
    --restart=always   
        容器随docker engine自启动,因为在重启docker的时候默认容器都会被关闭   
        也适用于create选项
         
    --rm
        默认情况下,每个容器在退出时,它的文件系统也会保存下来,这样一方面调试会方便些,因为你可以通过查看日志等方式来确定最终状态。另一方面,也可以保存容器所产生的数据。
        但是当你仅仅需要短暂的运行一个容器,并且这些数据不需要保存,你可能就希望Docker能在容器结束时自动清理其所产生的数据。这个时候就需要--rm参数了。注意:--rm 和 -d不能共用

若要断开与容器的连接,并且关闭容器:
   容器内部执行如下命令
    [root@d33c4e8c51f8 /]#exit

如果只想断开和容器的连接而不关闭容器:
    快捷键:ctrl+p+q

查看容器:
    只查看运行状态的容器:
    #docker ps

    #docker ps -a
    -a  查看所有容器
    
    只查看所有容器id:
    # docker ps -a -q
 
    列出最近一次启动的容器
    # docker ps -l   

查看容器详细信息:
inspect   Return low-level information on a container or image
用于查看容器的配置信息,包含容器名、环境变量、运行命令、主机配置、网络配置和数据卷配置等。

目标:
查找某一个运行中容器的id,然后使用docker inspect命令查看容器的信息。

提示:
可以使用镜像id的前面部分,不需要完整的id。
[root@master ~]# docker inspect d95    //d95是我机器上运行的一个容器ID的前3个字符
[
    {
        "Id": "d95a220a498e352cbfbc098c949fc528dbf5a5c911710b108ea3a9b4aa3a4761",
        "Created": "2017-07-08T03:59:16.18225183Z",
        "Path": "bash",
        "Args": [],
        "State": {
            "Status": "exited",
            "Running": false,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 0,
容器信息很多,这里只粘贴了一部分

比如:容器里在安装ip或ifconfig命令之前,查看网卡IP显示容器IP地址和端口号,如果输出是空的说明没有配置IP地址(不同的Docker容器可以通过此IP地址互相访问)
# docker inspect --format='{
  {.NetworkSettings.IPAddress}}'  容器id
列出所有绑定的端口:
# docker inspect --format='{
  {range $p, $conf := .NetworkSettings.Ports}} {
  {$p}} -> 
{
  {(index $conf 0).HostPort}} {
  {end}}' $INSTANCE_ID

# docker inspect --format='{
  {range $p, 
$conf := .NetworkSettings.Ports}} {
  {$p}} -> {
  {(index $conf 0).HostPort}} {
  {end}}' 
b220fabf815a
22/tcp -> 20020

找出特殊的端口映射:
比如找出容器里22端口所映射的docker本机的端口:
# docker inspect --format='{
  {(index (index .NetworkSettings.Ports "22/tcp") 
0).HostPort}}' $INSTANCE_ID
[root@localhost ~]# docker inspect --format='{
  {(index (index .NetworkSettings.Ports "22/
tcp") 0).HostPort}}' b220fabf815a
20020

http://note.youdao
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值