美文网首页
docker 启动容器相关操作

docker 启动容器相关操作

作者: 75221f946ec3 | 来源:发表于2019-03-05 15:44 被阅读0次

启动容器相关操作:

运行一个容器

# 运行容器,并再容器运行后执行pwd命令
root@jyq-virtual-machine:/# docker run  ubuntu pwd
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
6cf436f81810: Pull complete 
987088a85b96: Pull complete 
b4624b3efe06: Pull complete 
d42beb8ded59: Pull complete 
Digest: sha256:7a47ccc3bbe8a451b500d2b53104868b46d60ee8f5b35a24b41a86077c650210
Status: Downloaded newer image for ubuntu:latest
/  # pwd命令的输出
# 容器桩体为exited,说明容器已经退出停止
root@jyq-virtual-machine:/# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS                    NAMES
410e5ec23e74        ubuntu              "pwd"                    8 seconds ago       Exited (0) 7 seconds ago                            upbeat_leakey

在后台运行一个容器

为了保证提供服务,不能让容器运行后立马退出,所以需要使容器保持常时间运行
运行容器时使用-d参数可以使容器在后台一直处于运行状态

root@jyq-virtual-machine:/# docker run -d  ubuntu  /bin/bash -c 'while true; do sleep 1; done'
0346f58ef16c493be70ff0bc1a29e3c960d587210ea53bd669bcfdfb6ef4bfcd
root@jyq-virtual-machine:/# docker  ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
0346f58ef16c        ubuntu              "/bin/bash -c 'while…"   6 seconds ago       Up 5 seconds                                 eloquent_jennings

启动操作系统后必须执行一个可以一直运行的程序,不然即使使用-d参数,操作系统因为没有运行的任务状态将为created,看不出up的状态。

查看容器运行时执行的历史命令

注意:history 后面必须是镜像的名称,而不是容器的id

root@jyq-virtual-machine:/# docker history  ubuntu
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
47b19964fb50        3 weeks ago         /bin/sh -c #(nop)  CMD ["/bin/bash"]            0B                  
<missing>           3 weeks ago         /bin/sh -c mkdir -p /run/systemd && echo 'do…   7B                  
<missing>           3 weeks ago         /bin/sh -c rm -rf /var/lib/apt/lists/*          0B                  
<missing>           3 weeks ago         /bin/sh -c set -xe   && echo '#!/bin/sh' > /…   745B                
<missing>           3 weeks ago         /bin/sh -c #(nop) ADD file:529264c6593975a61…   88.1MB  

启动容器时给容器命名:

使用--name 参数在容器启动时给容器命名一个自己容易识别的名称:

root@jyq-virtual-machine:/# docker  run --name my-web -d -p 8081:80 httpd
a4eee9b6872928748847db3637cc4087cf5a7db7c91dac609e8c68264abcc101
root@jyq-virtual-machine:/# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
a4eee9b68729        httpd               "httpd-foreground"       5 seconds ago       Up 5 seconds        0.0.0.0:8081->80/tcp     my-web

停止一个容器:

docker stop [长ID|短ID|name]

  • 可以使用容器的长id
    容器启动时输出的ID
root@jyq-virtual-machine:/# docker  run --name my-web -d -p 8081:80 httpd
a4eee9b6872928748847db3637cc4087cf5a7db7c91dac609e8c68264abcc101
  • 使用短ID:
    使用ps名称查看容器运行状态时的container id 哪一行
root@jyq-virtual-machine:/# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
a4eee9b68729        httpd               "httpd-foreground"       5 seconds ago       Up 5 seconds        0.0.0.0:8081->80/tcp     my-web
  • 使用容器名称,在启动容器时使用--name指定的名称
root@jyq-virtual-machine:/# docker stop a4eee9b68729
a4eee9b68729
root@jyq-virtual-machine:/# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS                    NAMES
a4eee9b68729        httpd               "httpd-foreground"       6 minutes ago       Exited (0) 8 seconds ago                             my-web

怎么进入一个已经运行的容器:

  • 使用attach命令
  • 使用exec -it 命令
attach 和exec的区别:
  • attach 会直接连接到系统已经启动的虚拟终端中,可以产看到系统正常运行任务的输出;
  • exec -it 将会重新启动一个进程来启动虚拟终端,不能看到系统正在运行任务的输出;
  • 可以使用docker logs -f container 查看运行容器的输出;

容器运行分类:

  • 服务类容器,需要一致运行以提供一种服务:
    使用 -d 参数运行容器
  • 工具类容器,只是作为测试或者调试的一种工具使用:
    使用 -it交互的方式启动容器,退出后容器也自动退出

停止容器、启动容器和重启容器:

  • stop
    停止容器
  • start
    启动容器
  • restart
    重置容器,就是先使用stop停止容器,然后使用start启动容器
  • 容器启动时使用 --reatart=always 时容器能够停止后能够自动启动

容器的挂起和解除挂起

  • pause
    如果需要做容器快照或者释放主机cpu可以先将容器挂起;
  • unpause
    将一个已经挂起的容器重新启用

删除容器:

  • rm
    将已经处于exited的容器删除,以释放主机资源。

创建容器和启动容器:

  • 先使用create命令
    可以使用create命令先创建容器,被创建的容器处于created状态
  • 然后使用start明确启动已经创建的容器
    run命令其实是以上命令的集合

相关文章

  • Docker笔记2 命令使用

    Docker常见命令 容器相关操作 docker create # 创建一个容器但是不启动它 docker run...

  • Docker常用命令

    容器相关操作 docker create # 创建一个容器但是不启动它 docker run # 创建并启动一个容...

  • Docker 相关的命令

    docker 相关 一、 docker查看全部容器命令docker ps -a 容器相关操作docker crea...

  • Docker入门(3)---Docker容器

    Docker 容器操作 启动容器 启动已终止容器 容器查看 停止容器 进入容器 删除容器

  • docker常用指令

    1.docker启动、暂停、重启 2.docker 镜像操作 3. docker 容器指令 (1)启动和停止容器 ...

  • Docker容器的操作命令

    前言 Docker 容器的操作命令,记录下来!?? 操作Docker容器 重新启动docker服务 查看 Dock...

  • Docker基本命令

    镜像操作相关命令 容器操作相关命令 访问Docker仓库 Docker数据管理 端口映射与容器互联 Dockerf...

  • docker 启动容器相关操作

    启动容器相关操作: 运行一个容器 在后台运行一个容器 为了保证提供服务,不能让容器运行后立马退出,所以需要使容器保...

  • docker 基本使用操作2

    今日份更新使用docker的操作 # 查看docker 容器的进程号 # 首先要启动docker 容器docker...

  • Docker常用容器启动命令

    docker启动mysql容器 docker启动nginx容器 docker启动redis容器 docker启动p...

网友评论

      本文标题:docker 启动容器相关操作

      本文链接:https://www.haomeiwen.com/subject/lqkouqtx.html