Docker学习笔记(三)
重要的docker命令
# 启动守护式容器
$ docker run -d centos
# 启动之后使用ps命令会发现没有进程,因为当容器发现自己没有事情合作
# 查看容器日志
$ docker logs -f -t --tail 容器ID
# -t 加入时间
# -f 跟随最新的日志打印
# --tail 数字显示最后多少条
# 查看容器内运行的进程
$ docker top 容器ID
# 先让命令在docker里面运行一个循环打印日志
$ docker run -d centos /bin/sh -c "while true;do echo docker is running! ;sleep 2;done"
# 然后查看这个容器的ID,之后可以运行日志打印
$ docker logs -t -f --tail 5 53de2837bf8f
# 然后使用top命令查看运行进程
$ docker top 53de2837bf8f
# 查看容器内部细节
$ docker inspect 53de2837bf8f
# 进入正在运行的容器,并以命令行交互
$ docker exec -it 53de2837bf8f [shell 命令]
$ docker attach 53de2837bf8f
# attach区别和exec区别
# attach:直接进入容器启动命令的终端,不会启动新的进程
# exec :是在容器中打开新的终端,并且可以启动新的进程
实践操作
$ docker run -it centos /bin/bash
# 运行并进入到/bin/bash路径下
# ctrl + p + q ,转入后台运行
$ docker ps
# 查看ID
$ docker attach e35e09e22d42
# 进入容器的shell
$ docker exec -t e35e09e22d42 ls -l /tmp
# 没有进入到容器中,而且直接访问了容器里面的情况
$ docker exec -t e35e09e22d42 /bin/sh -c "echo hello"
$ docker exec -t e35e09e22d42 /bin/bash
# 上面那条命令等同于attach
docker commit
提交容器副本使之成为一个新的镜像
$ docker commit -m "提交的描述信息" -a="作者" 容器ID 目标镜像名:[tag]
实例操作
$ docker run -it -p 8888:8080 tomcat
# -p 主机端口:docker容器端口
# 8888是指对外服务端口,8080是容器里面的tomcat端口,
# 运行之后,从浏览器localhost:8888访问就可以
$ docker run -it -P timcat
# 这里P是大写的,端口变成为随机分配端口
commit命令行
# 提交到镜像仓库
$ docker commit -a="dyg" -m="k8s集群的master节点" 479c79a95c7f centos-master:v1.0
# 查看
$ docker images
# 之后如果想继续使用刚刚到镜像直接run命令启动即可