Docker 笔记

Docker

理解就是,容器,其中的一个疑惑是为什么docker内部可以有完整的系统,他不占内存吗
A:其实docker内没有内核

Docker 安装

  • 镜像:
  • 容器:
  • 仓库:

docker和宿主机是相互隔离的,内部也是有端口号的
需要映射出去
容器内有小的linux虚拟机

镜像常用命令

1
2
3
4
docker images -a                    #列出全部镜像 -aq则是全部标签
docker pull [name]:tag #下载全部镜像
docker rmi -f [id/name:tag] #删除镜像 i -f全部删掉
docker rmi -f $(docker images -aq) #递归删除全部的

容器常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
docker run -d --name=[] image       #运行容器
-d #后台运行,类似nohup
-it #进入到容器内部
-p #指定端口 -p 8080:8080,主机端口:容器端口

docker run -it centos:7 /bin/sh #进入到centos:7 容器内部
docker ps #查看全部运行的容器 -a即为查看历史运行的 -n=1 显示最近的1个
docker rm -f(运行中强删) [id/name:t] #删除镜像
docker start id/name #运行容器
docker restart id/name #重启容器
docker stop id/name #停止
docker kill id/name #干掉容器
docker logs -f --tail=500 [id/name:tag] #查看容器日志,-f持续监控 --tail显示多少行
docker inspect #查看容器全部信息

一个小的执行的脚本,2秒跑一次,不然的话,不做任何操作,会被docker直接杀掉

1
docker run -d centos:7 /bin/sh -c "whild true; do echo 牛逼;sleep 2;done"

1
2
docker exec -it [id]  /bin/bash     #进入容器,一般我感觉都在centos里跑
docker attach [id] #与上面那个不一样的是他是直接进入正在运行的终端
1
docker cp id:cpath opath            #copy文件,cpath:容器路径 opath:外部路径。不需要容器或者,文件是创建后就在的

总结一下

docker run是从images启动成container
docker start是container内部从stop状态启动
docker rm是删除掉容器
docker stop是停止容器
上述命令和images无关

补充

1
2
docker stats                        #查看内存状态
docker run -d --name=666 -p 8090:8080 -e JVM="-Xms64m -Xms512m" images:tag #-e即为不同的images不同的配置,例如配置JVM消耗的内存

请我喝杯咖啡吧~

支付宝
微信