首页 > 其他 > 详细

Docker各种零散命令整理

时间:2021-04-03 09:45:10      阅读:21      评论:0      收藏:0      [点我收藏+]
  • 查看本地镜像
docker images

  

  • 搜索镜像
docker search 镜像名

  

  • 搜索镜像并过滤是官方的
 docker search --filter "is-official=true" 镜像

 

  • 搜索镜像并过滤大于多少颗星的
docker search --filter stars=stars数量 镜像名 

  

  • 下载镜像
docker pull 镜像名:tag

  

  • 修改本地镜像名字(小写)
docker tag 旧镜像名 新镜像名

  eg: docker tag centos:7 mycentos:1

  

  • 本地镜像的删除
docker rmi IMAGE_ID

 

  • 构建容器
docker run -itd --name=CONTAINER_NAME IMAGE_NAME:tag [COMMAND] [ARG...]

  -i :表示以交互模式运行容器(让容器的标准输入保持打开)

  -t:为容器重新分配一个伪输入终端

  -d:表示后台运行容器,并返回容器ID

  --name:为容器指定名称

  CONTAINER_NAME:容器名

  IMAGE_NAME: 镜像名

  tag:镜像名的tag

  COMMAND: 容器执行的命令,可覆盖CMD,ENTRYPOINT

  ARG:命令所需的参数

 

  • 查看本地所有的容器
docker ps -a

  

  • 查看本地正在运行的容器  
docker ps

  

  • 停止容器
docker stop CONTAINER_ID / CONTAINER_NAME

  

  • 一次性停止所有容器
docker stop $(docker ps -a -q)

  

  • 一次性启动所有容器
docker start $(docker ps -a -q)

  

  • 启动容器
docker start  CONTAINER_ID / CONTAINER_NAME

  

  • 重启容器
docker restart CONTAINER_ID / CONTAINER_NAME

  

  • 删除容器
docker rm CONTAINER_ID / CONTAINER_NAME

  

  • 强制删除容器
docker rmi -f CONTAINER_ID / CONTAINER_NAME

  

  • 查看容器详细信息
docker inspect CONTAINER_ID / CONTAINER_NAME

  

  • 进入容器
docker exec -it CONTAINER_ID  /bin/bash  

  注:路径需要绝对路径, ":"之间不能有空格

 

  • 从宿主机复制到容器
docker cp 宿主机本地路径 容器名字/容器ID:容器路径

  

  • 从容器复制到宿主机
docker cp 容器名字/容器ID:容器路径 宿主机本地路径

  

  • 宿主机文件夹挂载到容器里(只能在构建时使用
docker run -itd -v 宿主机路径:容器路径 镜像名:tag

  参考:[https://docs.docker.com/engine/reference/commandline/run/]

 

  • Commit构建自定义镜像

  构建镜像:

docker commit [-a ""] [-m ""] CONTAINER_ID IMAGE_NAME:tag

  -a:标注作者

  -m:说明注释

  CONTAINER_ID:基于哪个容器的ID

 

  • 常用的Dockerfile指令

  FROM:基于哪个镜像;

  MAINTAINER:注明作者;

  COPY:复制文件进入镜像(只能用相对路径,不能用绝对路径);

  ADD:复制文件进入镜像,假如文件是.tar.gz文件会解压;

  WORKDIR:指定工作目录,假如路径不存在会创建路径;

  ENV:设置环境变量;

  EXPOSE:暴露容器端口;

  VOLUME

    用于容器数据挂载到宿主机;

    在dockerfile里设置volume是无法修改宿主机的挂载路径的;

    使用 --volumes-from 实现容器与容器之间volume共享;

    eg:

    • 创建nginx1
docker run -itd -p 8080:80 -v /usr/local/nginx/html:/usr/local/nginx/html --name nginx1
mycentos:nginx /usr/local/nginx/sbin/nginx -g "daemon off;"
    • 创建nginx2
docker run -itd -p 8081:80 --volumes-from nginx1 --name nginx2 mycentos:nginx
/usr/local/nginx/sbin/nginx -g "daemon off;"
    • 创建nginx3      
docker run -itd -p 8082:80 --volumes-from nginx1 --name nginx3 mycentos:nginx
/usr/local/nginx/sbin/nginx -g "daemon off;"

  RUN:在构建镜像的时候执行,作用于镜像层面;

  ENTRYPOINT:在容器启动的时候执行,作用于容器层,dockerfile里有多条时只允许执行最后一条

  CMD

   在容器启动的时候执行,作用于容器层,dockerfile里有多条时只允许执行最后一条容器启动后执行默认的命令或者参数,允许被修改;

   注:ENTRYPOINT优先于CMD执行

  

  命令格式:

  eg:

    shell命令格式:

RUN yum install -y net-tools

 

    exec命令格式:

RUN [ "yum","install" ,"-y" ,"net-tools"]

  

  构建:

docker build -t  IMAGE_NAME:tag [dockerfile路径]

  IMAGE_NAME:新建的镜像名

  tag:新建镜像的tag

  参考:[https://docs.docker.com/engine/reference/builder/

 

  Nginx镜像启动注意事项:

    /usr/local/nginx/sbin/nginx 在容器里Nginx是以daemon方式启动,退出容器时,Nginx程序也会随着停止;   

  解决方式:

    需要使用前台方式永久运行:/usr/local/nginx/sbin/nginx -g "daemon off;"

 

Docker各种零散命令整理

原文:https://www.cnblogs.com/coder-zyc/p/14608939.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!