zoukankan      html  css  js  c++  java
  • 【Docker】6. 常用命令 — 容器命令

    先pull一个镜像用来学习,docker pull centos

    一、常用基本容器命令

    1. docker run运行容器

    docker run [可选参数] image
    

    可选参数

    --name="Name"  容器名称,用以区分
    -d             后台方式运行
    -it            使用交互方式运行
    -p             指定容器的端口
          -p 主机端口:容器端口    实现端口映射,比如 8080:8080
    -P             随机指定端口
    

    现在来启动centos镜像,启动并进入容器,docker run -it centos /bin/bash
    进入容器后,可以查看ls,可以看出容器里的文件结构就是一个linux系统,只不过比较基础

    现在退出容器exit,再看下外面的linux结构,注意内外这2个linux,没任何关系。

    2. docker ps 查看容器

    1-查看正在运行中的容器列表。

    docker ps
    

    因为刚才退出了容器,所以没有正在运行的容器。

    2-查看运行的容器(包括曾运行过的)-a

    docker ps -a
    

    3-查看最近创建的容器,带上数量-n

    docker ps -a -n=1
    

    n=数量,这样就只返回一个结果。

    4-只查看容器的编号-q

    docker ps -aq
    

    这里-aq相当于 -a -q

    3. 退出容器

    在上面已经试过了用exit来退出容器,退出了容器也就停止了。
    若想退出,但是容器不停止,用这3个键一起。

    ctrl + P + Q
    

    4. 删除容器

    通过容器id进行删除,但是不能删除正在运行中的容器。只能rm -f强制删除。

    docker rm 容器id
    

    删除全部容器。

    docker rm -f $(docker ps -aq)
    

    5. 启动和停止容器

    docker start 容器id      # 启动容器
    docker restart 容器id    # 重启容器
    docker stop 容器id       # 停止当前正在运行的容器
    docker kill 容器id       # 强制停止当前容器
    

    二、其他命令(进阶)

    1. 后台启动容器

    docker run -d 镜像名称
    

    注意,启动之后用ps查看,发现并没有在运行。
    这是因为,docker容器使用后台运行的话,就必须要有一个前台的进程。说白了,就是得前台有一个东西咋使用这个后台运行的容器,否则docker容器就会
    自动停止。

    2. 查看日志

    docker logs -tf --tail 10 容器id    #表示查看10条日志
    

    不过目前这个centos里是没有日志的。可以现在写一个shell脚本,来做点事情,重新启动一个容器再试试。

    docker run -d centos /bin/sh -c "while true;do echo pingguo;sleep 1;done"
    

    此时再查看日志,可以看到日志输出了。

    不过因为脚本写了while循环,每秒还在输出,所以日志会一直更新。

    3. 查看容器内的进程

    docker top 容器id
    

    查看刚才运行的那个容器进程docker top 04912b1559a2

    • UID:用户id
    • PID:父进程id
    • PPID:进程id

    4. 查看容器的元数据

    docker inspect 容器id
    

    里面内容非常详细,后面再详细介绍。

    5. 进入当前正在运行的容器

    这个命令很常用,容器通常都是后台运行,需要进入容器,修改一些配置。

    方式1:

    docker exec -it 容器id bashshell
    

    进入刚才运行的centos里,docker exec -it 04912b1559a2 /bin/bash

    方式2:

    docker attach 容器id
    

    进去后发现一直有打印输出,这也是2种方式的区别:

    • docker exec:进入容器后,开启一个新的终端,这种最常用。
    • docker attach:进行容器正在执行的终端,不会启动新的进程。

    6. copy容器内的文件到主机

    docker cp 容器id:容器内路径  目标主机路径
    

    测试一下,我在容器内的/home下创建一个pingguo.txt文件。把它拷贝到外面的/home目录下。

    注意,这里的拷贝是手动执行的,后续使用到卷的技术,可以实现容器与外部数据的自动同步。

    --不要用肉体的勤奋,去掩盖思考的懒惰--
  • 相关阅读:
    176. Second Highest Salary
    175. Combine Two Tables
    172. Factorial Trailing Zeroes
    171. Excel Sheet Column Number
    169. Majority Element
    168. Excel Sheet Column Title
    167. Two Sum II
    160. Intersection of Two Linked Lists
    个人博客记录
    <meta>标签
  • 原文地址:https://www.cnblogs.com/pingguo-softwaretesting/p/14775363.html
Copyright © 2011-2022 走看看