Docker 入门学习(2)

Docker 入门学习(2)

1. Docker基本命令

  • 查看Docker程序是否正常
$ sudo docker info

返回所有容器和镜像的数量、Docker使用的执行驱动和存储驱动,以及Docker的基本配置。

  • 创建容器
$ sudo docker run -i -t ubuntu /bin/bash

-i:保证容器中STDIN是开启的;-t:为创建的容器提供一个伪tty终端。查看docker run所有标志:

$ docker help run
  • 检查容器主机名
root@...:/# hostname
  • 检查容器的/etc/hosts文件
root@...:/# cat /etc/hosts
  • 检查容器的网络接口
root@.../# ifconfig
  • 检查容器的进程
root@.../# ps -aux
  • 第一个容器中安装软件包
root@.../#apt-get update && apt-get install vim
  • 退出容器
root@.../#exit
  • 列出容器

    • 列出正在运行的容器
    $ docker ps
    
    • 列出所有容器
    $ docker ps -a
    
    • 显示最后x个容器,无论正在运行还是停止
    $ docker ps -n x
    

    输出包括:

    ID、用于创建容器的镜像、容器最后执行的命令、创建时间以及退出状态。

2. 管理Docker容器

  • 创建命名Docker
$ sudo docker run --name wtt_docker1 -i -t ubuntu /bin/bash
  • 删除容器
$ docker rm <ID/NAMES>
  • 一次性删除所有容器
$ sudo docker rm 'sudo docker ps -a -q'
  • 重新启动已停止的容器

    • 通过NAMES启动停止运行的容器
    $ sudo docker start <NAMES>
    
    • 通过ID启动已经停止运行的容器
    $ sudo docker start <ID>
    
    • 使用restart
    $ docker restart <NAMES/ID>
    
  • 终止正在运行的容器

$ sudo docker stop <NAMES/ID>
  • 暂停容器
$ sudo docker pause <NAMES/ID>
  • 恢复已暂停容器
$ sudo docker unpause <NAMES/ID>
  • 清除容器

清除处于停止状态的容器

$ sudo docker prune <NAMES/ID>
  • 强制终止
$ sudo docker kill <NAMES/ID>
  • 进入容器

使用-d参数时候,容器启动会进入后台,无法看到容器内信息,也无法进行操作,需要进入容器可以:

  1. 重新附着容器会话

Docker容器重启时,会沿用docker run命令指定的参数运行,使用docker attach可以重新附着容器会话。

$ sudo docker attach <NAMES/ID>
  1. exec命令(推荐)

可以在容器内执行任意命令

$ sudo docker exec -it <ID> /bin/bash

指定-it会保持标准输入打开,并分配一个伪终端。

  • 自动重启容器
$ sudo docker run --restart=always --name wtt_long_time -d ubuntu /bin/sh -c "while true;do echo hello;sleep 1;done"

--restart被设置成always,无论容器的退出代码是什么,Docker都会重启容器。

或者:

--restart=on-failure:5当容器退出代码非0时,Docker会自动重启该容器,最多重启5次。

3. 守护式容器

守护式容器没有交互式会话,适合运行应用程序和服务。

  • 创建长期运行的容器
$ sudo docker run --name wtt_long_time -d ubuntu /bin/sh -c "while true;do echo hello;sleep 1;done"

-d:Docker会将容器放到后台运行。

  • 获取守护式容器的日志
$ sudo docker logs <NAMES/ID>
  • 跟踪日志
$ sudo docker logs -ft <NAMES/ID>

-f:跟踪日志;-t:为每条日志加上时间戳。

  • 查看容器内的进程
$ sudo docker top <NAMES/ID>
  • Docker统计信息
$ docker stats

输出:

守护式容器列表、CPU、内存、网络I/O及存储I/O的性能和指标。

  • 容器内部运行进程
$ sudo docker exec -d wtt_long_time touch /etc/new_config_file

-d:运行一个后台进程。touch /etc/new_config_file:创建空文件。

  • 容器内部运行交互命令
$ sudo docker exec -t -i wtt_long_time /bin/bash

4. 容器迁移

  1. 导出容器

导出一个已经创建的容器到一个文件

$ sudo docker export -o test.tar wtingting/apache2

或者

$ sudo docker export wtingting/apache2 > test.tar
  1. 导入容器快照
$ sudo docker import test.tar -test/ubuntu:v1.0

容器快照与镜像存储文件区别:

容器快照将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),可以重新指定标签等元数据信息;

镜像存储文件将保存完整记录,体积更大。

5. 其他容器命令

  1. 复制文件

在容器和主机之间复制文件。

$ sudo docker cp <文件路径> <容器NAMES>:/tmp/
  1. 查看变更

查看容器内文件的变更

$ sudo docker diff <容器NAMES>
  1. 查看端口映射
$ sudo docker port <容器NAMES>
  1. 更新配置

更新容器的一些运行时配置,主要是一些资源限制份额。

$ sudo docker update <OPTIONS> <容器NAMES>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值