#docker中下载centos
docker pull centos
docker run 镜像id #新建容器并启动
-- docker run [可选参数] image
#参数说明
--name="name" 容器名称
-d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
-p 制定容器的端口 -p 8080:8080(主机端口:容器端口)
-P(大写P)随机指定端口
测试:
docker run -it centos /bin/bash
docker run -p 6379:6379--name redis -v /usr/local/docker/redis.conf:/etc/redis/redis.conf -v /usr/local/docker/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
docker ps 列出所有运行的容器 docker container list
-- docker ps 命令 #列出当前正在运行的容器
-a,--all #列出当前正在运行的容器 + 带出历史运行过的容器
-n=?,--last int #列出最近创建的?个容器 ?为1则只列出最近创建的一个容器,为2则列出2个
-q,--quiet #只列出容器的编号
docker rm 容器id #删除指定容器
docker start 容器id #启动容器
docker restart 容器id #重启容器
docker stop 容器id #停止当前正在运行的容器
docker kill 容器id #强制停止当前容器
退出容器:
exit #容器直接退出
ctrl +P+Q #容器不停止退出 ---注意:这个很有用的操作
删除容器:
docker rm 容器id #删除指定的容器,不能删除正在运行的容器,如果要强制删除 rm -rf
docker rm -f $(docker ps -aq) #删除所有的容器
docker ps -a -q|xargs docker rm #删除所有的容器
启动和停止容器的操作:
docker start 容器id #启动容器
docker restart 容器id #重启容器
docker stop 容器id #停止当前正在运行的容器
docker kill 容器id #强制停止当前容器
查看日志:
docker logs --help
Options:--details Show extra details provided tologs*-f,--follow Follow log output
--since string Show logs since timestamp (e.g.2013-01-02T13:23:37) or relative (e.g.42m for42 minutes)*--tail string Number of lines toshow from the end of the logs (default"all")*-t,--timestamps Show timestamps
--until string Show logs before a timestamp (e.g.2013-01-02T13:23:37) or relative (e.g.42m for42 minutes)
➜ ~ docker run -d centos /bin/sh -c "while true;do echo 6666;sleep 1;done" #模拟日志
#显示日志
-tf #显示日志信息(一直更新)
--tail number #需要显示日志条数
docker logs -t --tail n 容器id #查看n行日志
docker logs -ft 容器id #跟着日志
查看容器中的进程信息:
# 命令 docker top 容器id
查看容器的中的元数据
docker inspect 容器id
进入当前正在运行的容器
docker exec -it 容器id
docker attach 容器id
区别
#docker exec #进入当前容器后开启一个新的终端,可以在里面操作。(常用)
#docker attach # 进入容器正在执行的终端
从容器拷贝到主机上
docker cp 容器id:容器内路径 主机目的路径
镜像原理之联合文件系统
镜像是什么?
镜像是一种轻量级、可执行的独立软件包、用来打包软件运行环境和基于运行环境开发的软件,他包含运行某个软件所需的所有内容,包括代码、运行时库、环境变量和配置环境。
所有应用,直接打包docker镜像,就可以直接跑起来。
UnionFs(联合文件系统):Union文件系统(UnionFs)是一种分层、轻量级并且高性能的文件系统,他支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下( unite several directories into a single virtual filesystem)。Union文件系统是 Docker镜像的基础。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像
特性:一次同时加载多个文件系统,但从外面看起来,只能看到一个文件系统,联合加载会把各层文件系统叠加起来,这样最终的文件系统会包含所有底层的文件和目录。