Docker系列二

在Docker系列一中,已经安装并启动了Docker,在该系列中,将进行一些基本的操作:

创建并启动第一个Docker

命令: docker run
sudo docker run --name nginx -i -t ubuntu /bin/bash

参数说明:

  • -i : 保证容器中STDIN是开启的
  • -t : 通知docker要为创建的容器分配一个伪tty终端
  • 告诉docker使用基于ubuntu的镜像来创建容器 –> Docker首先会检查本地是否存在ubuntu镜像,如果本地没有,docker将连接官方维护的Docker Hub Registry,查看Docker Hub是否有该镜像,有则下载到本地。
  • 告诉Docker要在容器中运行的命令

启动后,目前以root身份登录容器,可以在该容器执行普通linux命令,如安装软件等,要退出容器回到宿主机的命令行终端,执行命令exit即可。
退出容器后,容器只是停止运行,它依然存在本地的。执行命令docker ps -a查看当前系统中的所有容器列表,包括运行中和已停止的,如下:
查看当前系统容器列表结果

  • 执行命令docker rm <容器名称/ID>可以删除一个容器,注意,运行中得docker容器是无法删除的
  • 执行命令docker ps -l可以查看最后一次运行的容器,包括正在运行和已经停止的。
  • 执行命令sudo docker start <容器名称/ID>可以启动一个已经停止的容器,重新启动容器时,会沿用docker run命令时指定的参数来运行,因此在重新启动后会运行一个交互式会话shell。另外,也可以使用sudo docker attach <容器名称/ID>来附着到该容器的会话上。
  • 执行命令sudo docker stop <容器名称/ID>可以停止一个正在运行的容器,该命令会向Docker容器进程发送SIGTERM信号,如果需要快速停止容器,可以执行命令sudo docker kill <容器名称/ID>

创建守护式容器

命令:
sudo docker run --name nginx -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"

参数说明:

  • -d : docker会将容器放到后台运行
  • 告诉Docker要在容器中运行的命令,这里在命令使用了一个while循环,该循环会一直打印hello world,直到容器或其进程停止运行。

该命令运行后,没有交互式shell,仅仅返回一个容器的ID,然后回到了主机的命令行之中,此时,执行命令docker ps会看在正在运行的这个容器。

既然我们现在回到了主机的命令行之中,我们也是可以看下这个后台运行的容器在干些什么,执行命令:sudo docker logs <容器名字/ID> —> Docker会输出最后的日志项并返回,我们可以使用-f参数来监控Docker的日志,与tail -f命令类似,sudo docker logs -ft <容器名字/ID>(t参数是输出时间戳),退出日志监控,按键Ctrl + C 即可。

要查看该守护容器的进程,执行命令sudo docker top <容器名字/ID>


在Docker1.3版本后,可以通过docker exec命令在容器内部额外启动新进程,如下:
sudo docker exec -d <容器名字/ID> touch ~/test.txt
* -d 参数表明需要运行一个后台进程

配置新建的容器可以进行重启

在默认情况下,docker不会重启容器,需要在启动时使用--restart标志。如:
sudo docker run --restart=always --name nginx -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"
在这个命令中,重启标志为always,说明物理无论容器的退出代码是什么,Docker都会自动重启该容器,也可以另外配置更详细,如:
sudo docker run --restart=on-failure:5 --name ......
这里的–restart参数值为on-failure,指只有当容器的退出代码为非0值时才自动重启,并且最多重启5次。


下面,创建一个用于反向代理的容器,如下:
创建nginx反向容器
这里只返回容器的id,可以执行这个命令来查看容器的信息docker inspect nginx1711
查看容器信息
因为没有只是新创建一个容器,没有安装Nginx,也没有执行任何其他命令,所以可以看到它的状态是停止的。
这个命令返回的配置信息很多,可以使用-f或--format来选定查看的结果:
docker inspect --format='{{ .State.Running }}' nginx1711

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值