玩坏docker笔记(八):Docker容器+常用指令

  • 时间:
  • 来源:互联网

容器启动时执行命令的三种方式:1)CMD命令,2)ENTRYPOINT指令 ,3)在docker run命令中指定

docker run ubuntu pwd  //容器启动时,执行pwd命令

执行docker ps或docker container ls 可以查看docker host中当前运行的容器;执行docker ps -a 或dokcer container ls -a可以查看所有状态的容器。

让容器长期运行

有些容器运行一闪而过,如何保持其长期运行呢 ?

docker run -d --name  myfirstcontiner  ubuntu  /bin/bash -c "while true;do sleep 1;done"
-d :后台运行
--nane:为容器制定一个名字
停止容器
docker stop 容器id/名字

通过

docker history 容器name/id

可以查看其运行情况

两种进入容器的方法

1)docker attach
通过docker attach可以attach到容器启动命令的终端
在这里插入图片描述
通过’长id‘attach到了容器的启动命令终端。
退出attach使用CTRL-p CTRL-q方式比较简单,只需要注意docker run时要同时指定-it选项。该方式只会退出docker attach,对容器没有影响。如果-it选项没有同时指定,CTRL-p CTRL-q无法生效

其他退出方式
上面两种方式在退出时都有限制,有没有其他方法呢?
其实,我们只要另起一个终端,把docker attach进程杀死就可以了

#终端1中执行,没有同时指定-it,CTRL-p CTRL-q无法退出
doujl@ubuntu:~$ docker run -id centos:7 /bin/bash
00c031965cb2075643e15a3b88141026e753a79e8b03b960880d505950488014
doujl@ubuntu:~$ docker attach 00c0
^P
/bin/bash: line 1: $'\020': command not found
^P
#终端2中杀死docker attach进程
doujl@ubuntu:~/dettach$ pkill -9 -f 'docker.*attach'
doujl@ubuntu:~/dettach$ 

docker exec

在这里插入图片描述
-it以交互的方式打开终端,执行bash,其结果就是打开了一个bash终端
ps -elf:显示容器进程
执行exit可以退出容器

容器常用命令

docker stop id/name
docker kill  id/name :快速停止
docker start name 
docker restart name
#若想在容器错误停止的时候自动重启
docker run -d --restart=always name
#若启动进程退出代码非0,则重启容器,次数不超过3
docker run -d --restart=on-failure:3 name
#希望容器暂停,对容器文件打快照
docker pause name/id
#处于暂停状态的容器不会占用cpu
docker unpause id/name
#删除容器
docker rm id/name
#批量删除所有已经退出的容器
docker rm -v $(docker ps -aq -f status=exited)
#删除镜像
docker rmi name
#可以先创建容器然后在启动
docker create httpd(容器name)
docker start id/name

那记忆微凉
发布了224 篇原创文章 · 获赞 134 · 访问量 26万+
私信 关注

本文链接http://element-ui.cn/news/show-1292.aspx