将介绍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"
2、查到容器日志
docker logs -ft --tail 容器ID
# options
-t # 加入时间戳
-f # 跟随最新的日志打印
--tail # 显示最后显示多少条
这个时间戳是根据参数 -t 加入的
3、查看容器内运行的进程
docker top 容器id
4、查看容器内部细节
docker inspect 容器id
以json的方式展现
5、进入正在运行的容器并以命令行交互
命令:
exec
attach
两点区别:exec是在容器中打开新的终端,并且可以启动新的进程,attach直接进入容器,不会启动新的进程
6、从容器内拷贝文件到主机上
docker cp 3311bc280fa3:/usr/local/bin /tmp/c.txt