《第一本Docker书》第三章 Docker入门

第三章 Docker入门

3.1 确保Docker已经就绪

1、 查看docker程序是否正常工作

$ sudo docker info

2、创建第一个容器

$ sudo docker run -i -t ubuntu /bin/bash //创建一个容器并进入该容器

-i 标志保证容器内中STDIN是开启的,维持持久的标准输入。

-t标志Docker为要创建的容器分配一个伪tty终端,这样新创建的容器才能够提供一个交互式shell。

同时命令告诉Docker基于ubuntu镜像来创建容器。ubuntu镜像是一个常备镜像,被称为“基础”镜像。

Docker会检查本地是否存在ubuntu镜像,如果本地还没有该镜像的话,那么Docker就会连接官方维护的Docker Hub Rsgistry,查看Docker Hub中是否有该镜像,若找到则会下载该镜像并保存到本地宿主机中。Docker在文件系统内部用这个镜像创建了一个新容器,该容器拥有自己的网络,ip地址,以及一个用来和宿主机通信的桥接网络接口。最后我们告诉容器要执行什么命令,本例中在容器中运行/bin/bash命令启动了一个可交互的bash shell。
在这里插入图片描述
3、使用第一个容器

root@be09c2aaa721:/# hostname    //检查容器主机名
root@be09c2aaa721:/# cat /etc/hosts // 检查容器的/etc/host
root@be09c2aaa721:/# apt-get install iproute2 iproute2-doc // 安装查看ip的包
root@be09c2aaa721:/# ip a // 查看容器的网络配置
root@be09c2aaa721:/# ps -aux  // 检查容器的进程
root@be09c2aaa721:/# exit  // 退出容器
[zhendoubi@zhendoubi docker]$ sudo docker ps -a  // 查看当前系统的容器列表

在这里插入图片描述
4、给创建的容器命名

通过使用 – name标志来给创建的容器命名

$ sudo docker run --name zhendoubi -i -t ubuntu /bin/bash

5、删除容器

$ sudo docker rm 容器ID    # 删除单个容器
$ sudo dock

6、重新启动已经停止的容器

$ sudo docker start 容器名 
或
$ sudo docker start 容器ID

7、附着到容器上

当容器重新启动后,可以使用docker attach命令,重新附着到容器的会话上

$ sudo docker attach 容器名
或
$ sudo docker attach 容器ID

8、创建守护式容器(daemonized container)

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

创建长期运行的容器

$ sudo docker run --name daemon_dave -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"

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

9、获取守护式容器的日志

$ sudo docker logs daemon_dave  #daemon_dave:容器名

10、跟踪守护式容器的日志

$ sudo docker logs -f daemon_dave
$ sudo docker logs --tail 100 daemon_dave   # 获取日志的最后10行内容
$ sudo docker logs 0 -f daemon_dave # 跟踪容器的最新日志
$ sudo docker logs -ft daemon_dave #为每条日志加上时间戳

11、查看容器内的进程

$ sudo docker top daemon_dave

12、在容器内部运行进程

在容器内运行的进程有两种类型:后台任务和交互式任务

  1. 在容器内运行后台任务
$ sudo docker exec -d daemon_dave touch /etc/new_config_file  #命令的目的是在容器daemon_dave中创建一个文件名为new_config_file的空文件。

-d:标志表明需要运行一个后台进程,-d标志之后,指定的是要在内部执行这个命令的容器的名字以及要执行的命令。

  1. 在容器内运行交互命令
$ sudo docker exec -t -i daemon_dave /bin/bash  #在容器daemon_dave中创建一个新的bash会话

-t、-i:标志为执行的进程创建TYY并捕获STDIN。标志之后,指定了要在内部执行这个命令的容器以及所要执行的命令。

13、查看容器列表的命令

  • 查看正在运行的容器
$ sudo docker ps
  • 列出所有容器列表
$ sudo docker ps -a
  • 列出最后一次运行的容器,无论此时容器是正在运行还是已经停止的
$ sudo docker ps -l
  • 列出最后x个容器,无论这些容器正在运行还是已经停止
$ sudo docker ps -n x

14、自动重启容器

当由于某种错误而导致容器停止运行,可以通过 –restart 标志,使Docker自动重新启动该容器。–restart 标志会检查容器的退出代码,并以此决定是否要重启该容器。默认是不会重启容器。

–restart=always :无论容器的退出代码是什么,Docker都会自动重启该容器。

–restart=on-failure :只有当容器的退出代码为非0值时,才会自动重启。

–restart=on-failure:n :重启的次数参数

$ sudo docker run --restart=always --name daemon_dave -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"

15、查看容器更多信息

  • 查看容器所有配置信息
$ sudo docker inspect daemon_dave #使用inspect对容器进行详细的检查,然后返回其配置信息等信息

在这里插入图片描述

  • 使用 -f 或 --format标志来选定查看结果
$ sudo docker inspect --format='{
    
    {.State.Running}}' daemon_dave

在这里插入图片描述
在这里插入图片描述

  • 可以同时查看多个容器的输出结果
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/zzlove1234567890/article/details/114487569