• 【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目录下。

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

    --不要用肉体的勤奋,去掩盖思考的懒惰--
  • 相关阅读:
    洛谷 P1692 部落卫队
    洛谷 P1113 杂务
    洛谷 P1546 最短网络 Agri-Net
    洛谷 P2121 拆地毯
    洛谷 P2728 纺车的轮子 Spinning Wheels
    洛谷 P2126 Mzc家中的男家丁
    线段树双标记——乘法和加法
    A. Feed the cat
    洛谷 P1535 游荡的奶牛
    BZOJ1050 [HAOI2006]旅行
  • 原文地址:https://www.cnblogs.com/pingguo-softwaretesting/p/14775363.html
Copyright © 2020-2023  润新知