将介绍Docker核心概念,是什么、能干什么、Docker整体架构,和传统虚拟机的区别。什么是容器虚拟化技术,深刻理解镜像、容器、仓库的各种概念和操作。通过该课程,能够熟练掌握Dockerfile的编写和构建并使用Dockerfile来制作复杂镜像,能够使用容器卷完成容器间数据共享和持久化工作。能够在Docker容器下进行日常软件的安装开发和工程部署,最终可以通过docker和阿里云平台完成工作的协同和发布。

1、启动守护式容器

docker run -d 镜像名

问题:然后docker ps -a 进行查看, 会发现容器已经退出,很重要的要说明的一点: Docker容器后台运行,就必须有一个前台进程.,容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的。

这个是docker的机制问题,比如你的web容器,我们以nginx为例,正常情况下,我们配置启动服务只需要启动响应的service即可。例如,service nginx start
但是,这样做,nginx为后台进程模式运行,就导致docker前台没有运行的应用,这样的容器后台启动后,会立即自杀因为他觉得他没事可做了,所以,最佳的解决方案是,将你要运行的程序以前台进程的形式运行。

以死循环hello zzyy输入为目的运行centos容器,这样就可以以守护式启动了

docker run -d centos /bin/sh -c "while true;do echo hello zzyy;sleep 2;done"

查看Docker 容器使用的volume docker中查看所有容器的命令_docker

2、查到容器日志

docker logs -ft --tail 容器ID
# options
-t # 加入时间戳
-f # 跟随最新的日志打印
--tail # 显示最后显示多少条

查看Docker 容器使用的volume docker中查看所有容器的命令_nginx_02

这个时间戳是根据参数 -t 加入的

3、查看容器内运行的进程

docker top 容器id

查看Docker 容器使用的volume docker中查看所有容器的命令_docker_03

4、查看容器内部细节

docker inspect 容器id

查看Docker 容器使用的volume docker中查看所有容器的命令_docker_04

以json的方式展现

5、进入正在运行的容器并以命令行交互

命令:

exec

attach

查看Docker 容器使用的volume docker中查看所有容器的命令_Docker_05

两点区别:exec是在容器中打开新的终端,并且可以启动新的进程,attach直接进入容器,不会启动新的进程

6、从容器内拷贝文件到主机上

docker cp 3311bc280fa3:/usr/local/bin /tmp/c.txt

查看Docker 容器使用的volume docker中查看所有容器的命令_nginx_06