学习docker,基本常用入门命令,简单清晰

镜像命令

//列出本地主机上的所有镜像
docker images
//根据镜像名称找镜像
docker images nginx(镜像名称)
//镜像(含映射层)
docker images -a
//镜像 image id
docker images -q
//镜像 image id(含映射层)
docker images -qa
//镜像(含摘要信息digest)
docker images --digests
//镜像完整信息(image id 会完全显示)
docker images --digests --no-trunc
//搜索镜像
docker search tomcat(镜像名称)
//搜索镜像(点赞数stars超过多少的)
docker search -s 100 tomcat(镜像名称)
//搜索镜像(点赞数stars超过多少的,显示完整信息)
docker search -s 100 --no-trunc tomcat(镜像名称)
//搜索镜像,只列出自动构建的类型automated build
docker search --automated
//下载拉取镜像(等价于docker pull tomcat:latest) :latest 版本号标签名tag
docker pull tomcat 
//删除镜像(默认删除:latest版本)
docker rmi tomcat(镜像名称)
//强制删除镜像(镜像正在运行)
docker rmi -f tomcat(镜像名称)
//删除多个镜像(空格隔开,-f强制删除)
docker rmi -f hello-world tomcat
//根据image id强制删除全部镜像
docker rmi -f $(docker images -q) 或者 $(docker images -qa)

容器命令

//运行容器,-i以交互模式运行容器,-t为容器分配一个伪输入终端
docker run -it(-i -t) 0d120b6ccaa8(image id) 或者 名称
//运行容器,有些容器需要后面加/bin/bash才能进入交互终端,例如nginx,php,-p是分配端口不用理会
docker run -it -p 8080:80 nginx /bin/bash
//列出所有正在运行的容器
docker ps
//退出容器
exit(容器停止退出) 或者 ctrl +  p + q(容器不停止退出)
//上一个运行容器
docker ps -l
//正在运行以及历史运行过的容器
docker ps -a
//正在运行的所有容器id
docker ps -q
//正在运行以及历史运行过的容器所有容器id
docker ps -qa
//上几个运行过的容器
docker ps -n 3
//显示上一个运行过的容器编号
docker ps -lq
//运行容器,自定义名称
docker run -it --name tomcat001 0d120b6ccaa8
//重新运行容器
docker start 0d120b6ccaa8
//重启容器
docker restart 0d120b6ccaa8
//停止容器
docker stop 0d120b6ccaa8
//强制停止容器
docker kill 0d120b6ccaa8
//删除已停止的容器
docker rm 0d120b6ccaa8
//强制删除容器
docker rm -f 0d120b6ccaa8
//一次性删除多个容器
docker rm -f $(docker ps -qa) 或 docker ps -qa | xargs docker rm -f

容器重要命令

//守护形式运行容器(必须有前台进程,否则会自动关闭)
docker run -d centos
//上面测试实例,脚本每2秒钟输出hello world
docker run -d centos /bin/sh -c "whild true; do echo hello world; sleep 2;done"
//查看容器日志,-t是加入时间戳,-f跟随最新的日志打印 --tail 数字 显示最后多少条
docker logs -ft --tail 3 0d120b6ccaa8(容器id)
//查看容器内运行的进程
docker top 0d120b6ccaa8
//查看容器内部细节(json形式)
docker inspect 0d120b6ccaa8
//进入正在运行的容器并以命令行交互
docker attach 0d120b6ccaa8 //直接进入容器启动命令,不会启动新的进程
//或者 
docker exec -it 0d120b6ccaa8 /bin/bash //在容器中打开新的终端,可以启动新的进程
//远程直接执行容器命令
docker exec -it 0d120b6ccaa8 ls -l /tmp
//容器内的数据拷贝到主机上
docker cp 004e54461278:/tmp/cxh.log /root
//启动容器并分配端口(p是小写,固定分配端口)
docker run -it -p 8888:80 nginx
//启动容器并分配端口(p是大写,随机分配端口)
docker run -it -P nginx
//提交容器副本成为新镜像
docker commit -a="作者" -m="描述信息" 0d120b6ccaa8(容器id) cxh/nginx:1.2(镜像名:标签名)
//守护式启动容器分配端口
docker run -d -p 8888:80 nginx
//测试访问nginx,此处是虚拟机,服务器需要开放端口
http://192.168.1.107:8888/ 或者localhost:8888 

容器数据卷(主机和容器实现数据持久化,数据共享)

//直接命令添加数据卷(目录会自动创建)
docker run -it -v /myDataVolume(宿主机绝对路径):/dataVolumeContainer(容器内绝对路径) centos
//直接命令添加数据卷,如果遇到没有权限问题
docker run -it -v /myDataVolume(宿主机绝对路径):/dataVolumeContainer(容器内绝对路径) --privileged=true centos
//直接命令添加数据卷(带权限,容器内仅读,宿主机所有权限)
docker run -it -v /myDataVolume(宿主机绝对路径):/dataVolumeContainer(容器内绝对路径):ro centos
//dockrefile添加
#1、编写Dockerfile文件
vim Dockerfile 
#2、加入下面代码

# volume test
FROM centos
VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"]
CMD echo "finished,---------success1"
CMD /bin/bash

#3、编译Dockerfile文件,会生成名为cxh/centos的镜像
docker build -f /root/Dockerfile(文件绝对路径) -t cxh/centos(容器名) .
//容器挂载父容器实现数据共享(创立父容器)
docker run -it --name dc01 cxh/centos
//容器挂载父容器实现数据共享(创立子容器挂载父容器)
docker run -it --name dc02 --volumes-from dc01 cxh/centos
#结论:容器之间的数据,一直持续到没有容器使用为止,无论删除哪个容器,只要有容器使用,数据一直存在

DockerFile体系结构(保留字指令)

# FROM 			//基础镜像,当前新镜像基于哪个镜像的
# MAINTAINER	//镜像维护者的姓名和邮箱地址
# RUN			//容器构建时需要运行的linux命令
# EXPOSE		//当前容器对外暴露的端口号
# WORKDIR		//指定创建容器后,终端默认登陆进来的工作目录,一个落脚点
# ENV 			//用来在构建镜像的过程中设置环境变量
# ADD			//将宿主机文件拷贝到镜像,自动处理URL和解压tar压缩包
# COPY			//复制宿主机文件到容器,COPY src(宿主机路径) /dest目标路径
# VOLUME		//容器数据卷目录
# CMD			//指定容器启动时要运行的命令,只允许一个命令,后面的命令覆盖前面的
# ENTRYPOINT	//指定容器启动时要运行的命令,可以执行多个命令
# ONBUILD		//当构建一个被继承的Dockerfile时运行命令,父镜像被子镜像继承时,触发onbuild事件,类似触发器

DockerFile案例

FROM centos

MAINTAINER cxh<1120710008@qq.com>

ENV path /tmp

WORKDIR $path

RUN yum -y install vim
RUN yum -y install net-tools

EXPOSE 80

CMD echo "success"

CMD /bin/bash
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值