• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
导航菜单
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx
您的位置:首页 > 服务器 >虚拟化 > Docker 入门快速上手指南

Docker 入门快速上手指南

作者:dailybird 字体:[增加 减小] 来源:互联网

本文主要包含Docker,上手指南,Docker,快速上手,docker,入门实践等服务器相关知识,dailybird 希望可以进行参考

为什使用 Docker?

为什么要使用 Docker?就个人而言,Docker 能提供的最大便利在于这种技术面对程序环境迁移时所表现的卓越性。

这种性能使得我们不必在分享代码或项目合作、交接时附带一长串的环境配置指南进行版本限制和扩展描述;也不必再特意记录自己对现有环境的配置改变,以免下次系统迁移时手足无措;更为重要的是,Docker 在提供以上解决方案的同时没有把解法变得复杂,相反的,它提供了一种更快、更容易的方式。

Docker 独到的对增量和文件层的应用,使得镜像下载、共享 & 隔离、版本控制等问题的解决方法变得格外优雅。有兴趣的读者可以参考「循序渐进学 Docker」这本书。

下载 & 安装

下载

访问下面的网址,从菜单的 Get Docker 中选择适合的版本进行下载。

https://www.docker.com/

安装

Mac 和 Windows 中都可以使用桌面版傻瓜式安装,而 Centos 中的安装会受限于系统内核版本,可查看 参考链接。

安装完成后,可以通过以下方式查看 Docker 版本:

docker --version

更改镜像源

国内访问官方镜像的速度较慢,可以选用国内的镜像源,这里给出 DaoCloud 和阿里云的镜像源,镜像源更换方法在以下网址中都有说明:

DaoCloud: https://www.daocloud.io/mirror

AliCloud: https://cr.console.aliyun.com/#/accelerator

镜像市场

可以从以下网址中搜索需要的镜像:

 官方:https://store.docker.com/

DaoCloud: http://hub.daocloud.io/

AliCloud:https://dev.aliyun.com/

名词解释

  1. 镜像:从镜像市场中下载的即为镜像,可以理解为容器的模板。
  2. 容器:应用程序运行的环境,容器的创建依赖于某一镜像。注意,容器不是镜像的拷贝,容器只是在镜像之上建立了一层读写层,用以覆盖容器内对镜像配置、文件的修改。采用这一方式可以避免因频繁的镜像复制而导致的资源浪费。具体可以参考相关书籍或博客。

镜像与容器

镜像的搜索与获取

搜索镜像

可以在安装了 Docker 的机器上使用以下指令搜索镜像,不过还是建议通过访问镜像商店的方式搜索。注意,$mirror-name 需要替换为想要搜索的镜像名。

docker search $mirror-name

获取镜像

可以使用以下指令拉取镜像到本地,其中冒号后的 $tag 为镜像的版本标签,如果省略冒号及之后的内容,则为下载最新版本即 :latest。版本标签信息可以在镜像市场中查找到。

docker pull $mirror-name:$tag

注意,若下载的镜像携带有版本标签,则之后对这一镜像的使用都需要携带版本标签,否则会因为版本不同而再次下载。

镜像的查看与删除

查看镜像

查看所有镜像可以使用:

docker images

也可通过以下方式查看单个镜像:

docker images $mirror-name

删除镜像

我们可以通过以下方式删除镜像,但此时需要保证没有容器使用这一镜像:

docker rmi $mirror-name

查看容器

查看已启动的容器

docker ps

查看全部容器

docker ps -a

查看容器日志

采用以下方法可以查看容器的操作历史和输出:

docker logs $container-name

启动容器

生成容器

可以通过以下方式生成一个基于某一镜像的容器,注意,如果宿主机中没有该镜像则会先进行下载。务必注意镜像标签是否正确。

docker run $mirror-name:$tag

使用这一命令会使得容器在创建后自动启动。

给容器添加自定义名字

通过 docker ps -a 可以看到容器的 ID 和 name,这两者都可以作为后续对容器删除、启动、关闭及设置等操作的标识。使用 ID 时,只需输入 ID 的前几位即可(能与其他容器区分)。

Docker 会为其随机生成 64 位长度的字符串作为 ID,当然,我们也可以通过如下方式手动指定容器的名字,其中 $container-name 即为指定的容器名。

docker run --name $container-name $mirror-name

启动容器

docker start $container-name

关闭容器

docker stop $container-name

以交互方式创建容器

可以通过以下方式,以交互的方式创建容器,当然也可以在 $mirror-name 的前面加上 --name xxx 来指定容器的名字,在交互模式中,可以输入 exit 退出:

docker run -it $mirror-name

以后台运行方式创建容器

我们可以使用 -d 操作使容器在后台运行:

docker run -d $mirror-name

容器状态问题

容器在启动后,如果没有活动的前台进程,容器会自动关闭。若要保持容器启动状态,可以强制其执行一个前台进程。

可以用以下方式创建一个不自动关闭的 centos 镜像:

docker run -it --name mycentos centos
docker start mycentos

// 此时可以看到该容器没有自动关闭
docker ps

容器执行操作

我们可以通过以下方式对已经启动的容器执行一些操作,其中 $container-name 可以是容器的名字,也可以是容器的 ID:

docker exec $container-name echo "hello" && echo "world"

也可以通过以下方式进入交互模式:

docekr exec -it $container-name bash

其中,&& 是起到操作间连接的作用。此外,我们也可以在创建的容器的时候就使其执行一些操作:

docker run $mirror-name echo "hello world"

查看容器详情

通过以下方式可以查看容器的详细信息,这些信息是采用 JSON 的格式展现的:

docker inspect $container-name

删除容器

可以在 rm 之后加入一个或多个容器名或容器 ID 进行批量删除。

docker rm $container-name-1 $container-name-2 ...

可以使用以下方法删除全部容器:

docker rm $(docker ps -aq)

Docker 网络

网络类别

查看网络类别

网络的类别为 none,host,bridge 三种,可以通过以下方式查看:

docker network ls

none 型网络

顾名思义,此类网络表示容器为独立个体,不与外部通信。

host 型网络

此类网络表示该容器与宿主机(安装 Docker 的机器)共享网络。

bridge 型网络

这是容器的默认网络类型,网桥模式意味着容器间可以互相通信,而对外的通信需要借助宿主机,这一形式通常表现为端口号的映射。

查看网络类别详情

docker network inspect $network-name

通过这种方式可以查看 JSON 格式的网络类别,在 Containers 条目中可以看到使用当前网络类型的容器列表,注意 Containers 中只会显示那些已经启动的容器。

创建网络

可以通过以下方式创建一个网络,其中,$network-driver 表示网络类别,即 none 或 bridge 或 host,而 $network-name 为自定义的网络名:

docker network create --driver $network-driver $network-name

如果省略 --driver $network-driver 则默认创建 bridge 类型的网络。

为容器指定网络

我们可以创建自定义的网络环境,并将一些容器放入这一网络内,以此管理容器间的网络连通情况。这种局域网网段的模拟实际是由内部 DNS 实现的。以下罗列将容器添加或移除到某一网络中的方法。

将容器添加进某一网络

可以通过以下方式将容器 $container-name 加入 $network-name 网络中。注意,一个容器可以属于多个网络。

do
  


 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Docker实践8:Compose,docker实践compose
  • Docker buildx构建多平台镜像并推送到私有仓库的方法
  • Docker三个基本概念镜像(Image)容器(Container)仓库(Repository)
  • 什么是Docker?为什么要使用Docker
  • docker 开源的应用容器引擎
  • 如何给docker设置http代理
  • docker官方mysql镜像自定义配置详解
  • 详解Docker数据管理(数据卷&数据卷容器)
  • 如何利用Docker容器实现代理转发与数据备份详解
  • 详解Docker Swarm 在持续集成测试中的应用

相关文章

  • 浅谈Docker运行Tensorboard和jupyter的方法
  • 警告1909无法创建快捷方式VMware Workstation Pro.Ink的图文解决方法(附 VMware_workstation 12的安装方法)
  • 详解Centos7 下建立 Docker 桥接网络
  • 浅谈Docker 容器数据卷挂载小结
  • 详解Docker 数据卷管理
  • OpenStack安装部署Liberty Neutron
  • Docker容器之内网独立IP访问的方法
  • 初次使用Docker的体验笔记总结
  • Virtualbox安装配置方法图文教程
  • docker中mysql初始化及启动失败问题解决方案

文章分类

  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx

最近更新的内容

    • 服务器整合:虚拟机密度大未必好事
    • 利用Docker搭建本地https环境的完整步骤
    • Spark三种属性配置方式详解
    • VMWARE安装与VMWARE下LINUX系统安装(图文教程)
    • Docker 技巧之删除Docker容器和镜像
    • 详解docker中Dockerfile指令创建镜像
    • Docker 自动部署tomcat详解
    • Docker实践--部署Nodejs应用
    • 在Windows系统下安装docker窗口的配置过程
    • 使用Docker registry镜像创建私有仓库的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有