侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

Docker学习之常用的基础命令总结

Docker  /  管理员 发布于 7年前   205

前言

Docker是一个用了一种新颖方式实现的超轻量虚拟机,在实现的原理和应用上还是和VM有巨大差别,专业的叫法是应用容器(Application Container)。下面这篇文章将简单介绍一下Docker常用的一些基础命令。

# 在ubuntu中安装docker$ sudo apt-get install docker.io# 查看docker的版本信息$ docker version# 查看安装docker的信息$ docker info# 查看本机Docker中存在哪些镜像$ docker images# 检索image$ docker search ubuntu:14.04# 在docker中获取ubuntu镜像$ docker pull ubuntu:14.04# 显示一个镜像的历史$ docker history birdben/ubuntu:v1# 列出一个容器里面被改变的文件或者目$ docker diff birdben/ubuntu:v1# 从一个容器中取日志$ docker logs birdben/ubuntu:v1# 显示一个运行的容器里面的进程信息$ docker top birdben/ubuntu:v1# 从容器里面拷贝文件/目录到本地一个路径$ docker cp ID:/container_path to_path# 列出当前所有正在运行的容器$ docker ps# 列出所有的容器$ docker ps -a# 列出最近一次启动的容器$ docker ps -l# 查看容器的相关信息$ docker inspect $CONTAINER_ID# 显示容器IP地址和端口号,如果输出是空的说明没有配置IP地址(不同的Docker容器可以通过此IP地址互相访问)$ docker inspect --format='{{.NetworkSettings.IPAddress}}' $CONTAINER_ID# 保存对容器的修改 $ docker commit -m "Added ssh from ubuntu14.04" -a "birdben" 6s56d43f627f3 birdben/ubuntu:v1# 参数:# -m参数用来来指定提交的说明信息;# -a可以指定用户信息的;# 6s56d43f627f3代表的时容器的id;# birdben/ubuntu:v1指定目标镜像的用户名、仓库名和 tag 信息。# 构建一个容器 $ docker build -t="birdben/ubuntu:v1" .# 参数:# -t为构建的镜像制定一个标签,便于记忆/索引等# . 指定Dockerfile文件在当前目录下,也可以替换为一个具体的 Dockerfile 的路径。# 在docker中运行ubuntu镜像$ docker run <相关参数> <镜像 ID> <初始命令># 守护模式启动$ docker run -it ubuntu:14.04# 交互模式启动$ docker run -it ubuntu:14.04 /bin/bash# 指定端口号启动$ docker run -p 80:80 birdben/ubuntu:v1# 指定配置启动$ sudo docker run -d -p 10.211.55.4:9999:22 birdben/ubuntu:v1 '/usr/sbin/sshd' -D# 参数:# -d:表示以“守护模式”执行,日志不会出现在输出终端上。# -i:表示以“交互模式”运行容器,-i 则让容器的标准输入保持打开# -t:表示容器启动后会进入其命令行,-t 选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上# -v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>,-v 标记来创建一个数据卷并挂载到容器里。在一次 run 中多次使用可以挂载多个数据卷。# -p:表示宿主机与容器的端口映射,此时将容器内部的 22 端口映射为宿主机的 9999 端口,这样就向外界暴露了 9999 端口,可通过 Docker 网桥来访问容器内部的 22 端口了。# 注意:这里使用的是宿主机的 IP 地址:10.211.55.4,与对外暴露的端口号 9999,它映射容器内部的端口号 22。ssh外部需要访问:ssh [email protected] -p 9999# 不一定要使用“镜像 ID”,也可以使用“仓库名:标签名”# start 启动容器$ docker start 117843ade696117843ade696# stop 停止正在运行的容器$ docker stop 117843ade696117843ade696# restart 重启容器$ docker restart 117843ade696117843ade696# rm 删除容器$ docker rm 117843ade696117843ade696# rmi 删除镜像$ docker rmi ed9c93747fe1Deleted# 登录Docker Hub中心$ docker login# 发布上传image(push)$ docker push birdben/ubuntu:v1

当利用 docker run 来创建容器时,Docker 在后台运行的标准操作包括:

     1、检查本地是否存在指定的镜像,不存在就从公有仓库下载

     2、利用镜像创建并启动一个容器

     3、分配一个文件系统,并在只读的镜像层外面挂载一层可读写层

     4、从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去

     5、从地址池配置一个 ip 地址给容器

     6、执行用户指定的应用程序

     7、执行完毕后容器被终止

总结

关于Docker常用的基础命令就基本总结这些,希望对有需要的朋友们能有所帮助,如果大家有疑问可以留言交流。


  • 上一条:
    在生产环境如何使用Docker部署应用
    下一条:
    什么是docker Docker入门教程第一篇
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在docker环境中实现Laravel项目执行定时任务和消息队列流程步骤(0个评论)
    • 在MacBook下laravel项目多php版本docker开发环境配置方案(0个评论)
    • 在docker环境中部署docker部署elk架构流程步骤(1个评论)
    • docker compose跟Dockerfile的区别浅析(0个评论)
    • Ubuntu 22.04系统中安装podman流程步骤(1个评论)
    • 近期文章
    • 智能合约Solidity学习CryptoZombie第三课:组建僵尸军队(高级Solidity理论)(0个评论)
    • 智能合约Solidity学习CryptoZombie第二课:让你的僵尸猎食(0个评论)
    • 智能合约Solidity学习CryptoZombie第一课:生成一只你的僵尸(0个评论)
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2017-11
    • 2020-06
    • 2021-05
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2021-12
    • 2022-01
    • 2022-02
    • 2022-03
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-11
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-04
    • 2024-03
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客