docker常用命令及注意事项

信息查看

  • docker info
  • docker version

登录登出

  • docker login
    docker login -u ‘username’ -p ‘password’ url
    执行完docker login后,会在/${home}/.docker/config.json文件中生成auth信息

  • docker logout
    执行完成后,/${home}/.docker/config.json文件中的auth信息仍然存在

镜像

  • 查看本地镜像 docker images
  • 查看镜像详细信息docker inspect repository_name:tag
  • 拉取远程镜像 docker pull repository_name:tag
  • 推送本地镜像到远程仓库docker push user_name/repository_name:tag
    注意两点:1.需要先到官网注册并执行docker login 2.本地镜像的repository需要带user_name
  • 删除本地镜像 docker rmi repository_name:tag[image_id]
  • 基于dockerfile构建镜像 docker build -t repository_name:tag docker_file_path
  • 在仓库中搜索镜像 docker search repository_name
  • 由当前容器生成镜像docker commit -m="描述" -a="作者" container_id new_repository_name:tag
  • 复制镜像docker tag image_id new_repository_name:new_tag
    • 如果new_repository_name:new_tag已存在,不会产生新的镜像

容器

  • 启动容器 docker run --name container_name -p local_port:container_port -d image_name
    • –rm 停止容器时自动删除容器
    • –name 指定容器名称
    • -p 指定本地端口与容器内端口映射
    • -d 后台运行
    • –volume “$PWD/”:/var 指定本地路径与容器内路径映射
  • 查看所有容器 docker ps -a
  • 查看正在运行的容器 docker ps
  • 查看容器IP docker inspect container_id
  • 启动一个已停止的容器 docker start container_id
  • 停止一个正在运行的容器 docker stop container_id
  • 重启一个已停止的容器 docker restart container_id
  • 进入正在运行的容器 docker exec -it container_id /bin/bash 或 docker exec -it container_id /bin/sh
  • 退出正在运行的容器 exit
  • 强制删除正在运行的容器 docker rm -f container_id
  • 删除已停止的容器 docker rm container_id
  • 删除所有停止的容器 docker container prune

DockerFile

用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

  • 上下文路径
    该路径下存放需要发送给 docker 引擎构建镜像的文件。默认上下文路径就是 Dockerfile 所在的位置。
  • FROM
    指定基于哪个镜像
  • MAINTAINER
    指定镜像作者
  • RUN
    在docker build阶段执行,用于执行后面跟着的命令行命令。
    exec格式:RUN [“可执行文件”, “参数1”, “参数2”]
    shell格式:RUN <命令行命令>
  • ADD
    从上下文目录中复制文件或者目录到容器里指定路径。压缩包会自动解压,url会自动下载。
  • COPY
    从上下文目录中复制文件或者目录到容器里指定路径。压缩包不会自动解压,url不会自动下载。推荐copy代替add。
  • CMD
    在docker run 时运行,为启动的容器指定默认要运行的程序,程序运行结束,容器也就结束。
    如果存在多个 CMD 指令,仅最后一个生效。
    可被 docker run 命令行参数中指定要运行的程序所覆盖。
CMD <shell 命令> 
CMD ["<可执行文件或命令>","<param1>","<param2>",...] 
CMD ["<param1>","<param2>",...]  # 该写法是为 ENTRYPOINT 指令指定的程序提供默认参数
  • ENTRYPOINT
    类似于 CMD 指令,但其不会被 docker run 的命令行参数指定的指令所覆盖,而且这些命令行参数会被当作参数送给 ENTRYPOINT 指令指定的程序。如果运行 docker run 时使用了 --entrypoint 选项,将覆盖 ENTRYPOINT 指令指定的程序。
ENTRYPOINT ["<executeable>","<param1>","<param2>",...]
  • LABEL
    添加一些元数据(metadata),以键值对的形式。
    可以用来代替MAINTAINER的使用

  • ENV
    设置环境变量,在后续的指令中可以使用这个环境变量。

  • ARG
    设置环境变量,仅对 Dockerfile有效,即只在docker build的过程中有效,构建好的镜像内不存在此环境变量。

  • EXPOSE
    暴露容器内部端口,docker run -P 时,会自动随机映射该端口

  • VOLUME
    定义匿名数据卷。在启动容器时忘记挂载数据卷,会自动挂载到匿名卷。
    在执行docker run时,可以通过 -v 参数修改挂载点。

  • WORKDIR
    切换到镜像中的指定路径,设置工作目录。
    一般使用绝对路径,如果提供了相对路径,它将相对于前一个 WORKDIR 指令的路径

  • USER
    切换后续命令执行的用户(用户和用户组必须提前创建好)。

  • 如何在dockerfile阶段知道容器中的路径

  • 如何在dockerfile阶段知道容器中的用户

  • entrypoint与cmd同时存在,docker run的执行过程是什么样

修改镜像服务器

在/etc/docker/daemon.json文件中添加如下内容

{
  "registry-mirrors": [
    "https://ustc-edu-cn.mirror.aliyuncs.com",
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
  ]
}

也可以配置云服务的镜像加速器
在这里插入图片描述
重启docker systemctl restart docker
查看修改是否生效 docker info
在这里插入图片描述

搭建私有镜像仓库

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值