Docker常用命令

一、帮助命令:

 docker version  # 查询docker版本
 docker info   #docker详细信息
 docker --help    #docker所有命令大全

二、镜像命令:

 docker images   # 列出本地所有镜像
 docker images -a  #列出本地所有镜像(包括中间映像层)
 docker images -q  #只显示镜像id
 docker images -aq  #列出本地所有镜像ID(包括中间映像层)
 docker images --digests #显示镜像的摘要信息
 docker images --no-trunc  #显示镜像详细id,说明
 
 docker history xxx #查询镜像xxx变更历史

 docker search xxx   #从docker hub上查询某镜像,如:docker search tomcat

 docker pull xxx   #拉去最新镜像,相当于docker pull xxx:latest

 docker rmi  xxx   #删除单个某镜像,相当于docker rmi xxx:latest
 docker rmi -f  xxx  #强制删除单个某镜像
 docker rmi  -f xx1 xx2 xx3 #删除多个镜像,中间空格隔开
 docker rmi -f $(docker images -qa) #删库跑路,删除所有镜像(仿佛不太好用)
 docker images -qa|xargs docker rmi -f  #删库跑路,删除所有镜像

三、容器命令:

//创建
docker run xxx #创建镜像xxx的容器并运行;xxx可以是镜像的名字也可以是ID;注:底层是先从本地找镜像xxx ,未找到去docker hub上找,找到后pull下来,根据xxx 镜像创建容器,运行容器xxx
docker run --name mycentos7 -it xxx #以为终端模式创建镜像xxx的交互式容器,命名为mycentos7 
docker run -it -p 8888:8080 tomcat #小p,指定映射端口启动
docker run -it -P  tomcat #大P,随机分配端口启动
docker run -d -p 8888:8080 tomcat #小p,指定映射端口启动,-d表示后台启动

docker run -d xxx #以后台模式启动docker;此模式无前台进程,所以启动后立马自杀;如果不自杀,需要以前台进程的模式启动 -it 

docker run -d centos /bin/sh -c "while true;do echo hello swlswl666;sleep 2;done" #以后台模式启动docker;此模式有前台进程

//查看
docker ps #列出docker中正在运行的docker容器
docker ps -a #列出当前所有正在运行+历史运行的
docker ps -q #只列出id
docker ps -aq # 列出当前所有正在运行+历史运行的docker id

docker ps -l #列出上次运行的docker容器
docker ps -n x #列出上x次运行的docker容器
docker ps --no-trunc #不截断输出

//退出与关闭
exit #关闭并离开容器
ctrl+Q+P #离开不关闭容器

docker attach xxx #离开容器后,重新进入容器

docker exec -it xxx /bin/bash #在外层,执行容器命令/bin/bash,相当于进入容器;若没/bin/bash,用sh
docker exec -it xxx ls -l /tmp #在外层,执行容器命令ls -l /tmp,相当于进入容器执行ls -l /tmp然后再退出


docker stop xxx #关闭容器xxx,xxx为容器的id
docker kill xxx #kill容器xxx,xxx为容器的id

//启动
docker start xxx #启动容器xxx,xxx为容器的id
docker restart xxx #重启容器xxx,xxx为容器的id

//删除
docker rm  xxx #删除关闭的容器xxx,xxx为容器的id
docker rm  xxx1 xxx2 xxx3  #删除关闭的容器xxx123,xxx123为容器的id
docker rm -f ${docker ps -aq} #删库跑路,加-f可删除正在运行的容器
docker ps -aq | xargs docker rm -f  #删库跑路

//容器日志
docker logs -t -f --tail 5 xxx #输出日志,-t:时间;-f:持续输出;--tail 5 输出最新五条

docker top xxx #查看docker上的xxx容器内进程情况
docker inspect xxx #查看docker上的xxx容器内进程详细情况

//将容器中文件复制到docker
docker cp xxx:/tmp/1.js  /tmp/ #将容器xxx下/tmp/1.js,copy到docker的/tmp/ 下

四、Docker容器数据卷:

docker run -it -v /volumesCentos:/volumesDocker centos #将宿主机目录/volumesCentos与docker目录/volumesDocker建立数据卷(数据持久化、共享与继承)
docker run -it -v /volumesCentos:/volumesDocker:ro centos #带权限,将宿主机目录/volumesCentos与docker目录/volumesDocker建立数据卷(数据持久化、共享与继承),ro指的是read only只读

(注:如果不能写,则在命令后面添加:--privileged=true)



五、DockerFile:
a.DockerFile 是构建docker镜像的文件;有一系列命令和参数构成:

dockerFile—>docker build —>docker run

b.用dockerFile创建容器数据卷
1.mkdir mydocker
2.cd /mydocker
3.vim dockerfile
写入下面代码:

  # volume test
FROM centos
VOLUME ["/dataVolume1","/dataVolume2"]
CMD echo "finished,.......success!"
CMD /bin/bash

4.docker build -f /mydocker/dockerfile -t swl/centos . # -f : file的意思;-t: 命名

docker run -it --name dk01 swl/centos /bin/bash  #执行上面build好的镜像生成名为dko1的容器
docker run -it --name dk02 --volumes-from dk01 swl/centos /bin/bash   #dk02继承dk01的volumes

c.DockerFile的命令:

在这里插入图片描述

FROM:基础镜像,当前新镜像是来源于那个镜像的
MAINTAINER: 维护者(作者)的名字与邮箱
RUN:容器build的时候需要运行的命令
EXPOSE:当前容器对外暴露的端口
WORKDIR:指定在创建容器后,终端默认进入的目录
ENV:用来构建镜像过程中设置环境变量
ADD:将宿主机目录下的文件copy进镜像且自动解压tar压缩包
COPY: COPY src dest 或 COPY["src","dest"] 类似于ADD,复制文件到镜像。
VOLUME:容器数据卷,用于数据保存和持久化工作。
CMD:1.指定容器启动时要运行的命令
     2.CMD可以有多个CMD指令,但只有最后一个生效。
     如:CMD <命令>
        CMD ["可执行文件","参数1","参数2",]
ENTRYPOINT:1.指定容器启动时要运行的命令;和CMD一样,但是CMD只执行最后一个,ENTRYPOINT会都执行
ONBUILD:当构建一个被继承的Dockerfile时运行,父镜像在子镜像继承的时候执行

六、改造镜像:

1. cd /mydocker  #进入一文件夹
2. vim mydockerFile2  #vim 文件
3. #将以下命令粘贴入mydockerFile2
FROM centos

MAINTAINER swl<994580078@99.com>

ENV PATHHOME /usr/local
WORKDIR $PATHHOME

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

EXPOSE 80

CMD echo $PATHHOME
CMD echo "success----------ok"
CMD /bin/bash

4.docker build -f /mydocker/mydockerFile2 -t mysentos2:2.0 .
#BUILD

5.docker run -it mysentos2:2.0 #运行

七、其他:

//commit
1.docker commit -m="XXXX" -a="swl"  xxxID  andawell/mysql9:1.0 
#commit 新镜像
4. ps -ef|grep docker|grep -v grep   #查看docker进程 

八、将镜像推送到阿里云

九、实战

1.docker pull java:8
2.vim businessdockerFile
3.
FROM java:8
COPY andawell-ipd-business-service-1.0-SNAPSHOT.jar /usr/local/andawell-ipd-business-service-1.0-SNAPSHOT.jar
EXPOSE 9527
ENTRYPOINT ["java","-jar","-Dspring.cloud.nacos.config.namespace=andawell-ipd-dev","-Dspring.cloud.nacos.config.group=dev","-Dspring.cloud.nacos.discovery.namespace=technology-platform-test","-Dspring.cloud.nacos.discovery.group=test","/usr/local/andawell-ipd-business-service-1.0-SNAPSHOT.jar"]
4.docker build -f businessdockerFile -t ipd_buss:1.0 .


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值