Docker教程

资料地址
Docker 能解决的问题
⾸先,我们先来看⼏个问题:
1. 合作开发的时候,在本机可以运⾏,在别⼈的电脑上跑不起来。
这⾥我们以 Java Web 应⽤程序为例,⼀个 Java Web 应⽤程序涉及很多东⻄,⽐如 JDK Tomcat Spring 等等。当
这些其中某⼀项版本不⼀致的时候,可能就会导致应⽤程序跑不起来这种情况。 Docker 则将程序直接打包成镜像,
直接运⾏在容器中即可。
2. 服务器⾃⼰的程序挂了,结果发现是别⼈程序出了问题把内存吃完了,⾃⼰程序因为内存不够就挂了。
这种也是⼀种⽐较常⻅的情况,如果你的程序重要性不是特别⾼的话,公司基本上不可能让你的程序独享⼀台服务
器的,这时候你的服务器就会跟公司其他⼈的程序共享⼀台服务器,所以不可避免地就会受到其他程序的⼲扰,导
致⾃⼰的程序出现问题。 Docker 就很好解决了环境隔离的问题,别⼈程序不会影响到⾃⼰的程序。
3. 测试阶段能运⾏和上线出现问题。
开发阶段部署⼀套软件环境,测试⼈员在开发中测试没有问题,运维进⾏部署(同⼀套代码)。但是正式部署到服
务器时,发⽣了问题(启动参数、环境问题、漏配了参数)等意外。
4. 公司要弄⼀个活动,可能会有⼤量的流量进来,公司需要再多部署⼏⼗台服务器。
在没有 Docker 的情况下,要在⼏天内部署⼏⼗台服务器,这对运维来说是⼀件⾮常折磨⼈的事,⽽且每台服务器的
环境还不⼀定⼀样,这时就会出现各种问题,最后部署地头⽪发麻。⽤ Docker 的话,我只需要将程序打包到镜像,
你要多少台服务,我就给你跑多少容器,极⼤地提⾼了部署效率。
5. 微服务环境搭建问题。
随着微服务技术的兴起,⼀个⼤的应⽤需要拆分成多个微服务。多个微服务的⽣成,就会⾯临庞⼤系统的部署效
率,开发协同效率问题。然后通过服务的拆分,数据的读写分离、分库分表等⽅式重新架构,⽽且这种⽅式如果要
做的彻底,需要花费⼤量⼈⼒物⼒。可能需要部署很多个服务器。
6. 容器版本管理。
持续的软件版本发布、测试项⽬到线上环境的集成。⽤户可以⽅便地创建和使⽤容器,把⾃⼰的应⽤放⼊容器。容
器还可以进⾏版本管理、复制、分享、修改,就像管理普通的代码⼀样。

为什么使⽤Docker

1. 简化程序
Docker 让开发者可以打包他们的应⽤以及依赖包到⼀个可移植的容器中,然后发布到任何流⾏的 Linux 机器上,便
可以实现虚拟化。 Docker 改变了虚拟化的⽅式,使开发者可以直接将⾃⼰的成果放⼊ Docker 中进⾏管理。⽅便快
捷已经是 Docker 的最⼤优势,过去需要⽤数天乃⾄数周的任务,在 Docker 容器的处理下,只需要数秒就能完成。
2. 避免选择恐惧症
如果你有选择恐惧症,还是资深患者。 Docker 帮你打包你的纠结! Docker 镜像中包含了运⾏环境和配置,所以
Docker 可以简化部署多种应⽤实例⼯作。⽐如 Web 应⽤、后台应⽤、数据库应⽤、⼤数据应⽤,再如 Hadoop
群、消息队列等都可以打包成⼀个镜像部署。
3. 节省开⽀
⼀⽅⾯,云计算时代到来,使开发者不必为了追求效果⽽配置⾼额的硬件, Docker 改变了⾼性能必然⾼价格的思维
定势。 Docker 与云的结合,让云空间得到更充分的利⽤。不仅解决了硬件管理的问题,也改变了虚拟化的⽅式。
4. 持续交付和部署
对开发和运维( DevOps )⼈员来说,最希望的就是⼀次创建或配置,可以在任意地⽅正常运⾏。使⽤ Docker 可以
通过定制应⽤镜像来实现持续集成、持续交付、部署。开发⼈员可以通过 Dockerfile 来进⾏镜像构建,并结合持续
集成( Continuous Integration )系统进⾏集成测试,⽽运维⼈员则可以直接在⽣产环境中快速部署该镜像,甚⾄
结合持续部署( Continuous Delivery/Deployment )系统进⾏⾃动部署。⽽且使⽤ Dockerfile 使镜像构建透明化,
不仅仅开发团队可以理解应⽤运⾏环境,也⽅便运维团队理解应⽤运⾏所需条件,帮助更好的⽣产环境中部署该镜
像。
5. 更轻松的迁移
由于 Docker 确保了执⾏环境的⼀致性,使得应⽤的迁移更加容易。 Docker 可以在很多平台上运⾏,⽆论是物理
机、虚拟机、公有云、私有云,甚⾄是笔记本,其运⾏结果是⼀致的。因此⽤户可以很轻易的将在⼀个平台上运⾏
的应⽤,迁移到另⼀个平台上,⽽不⽤担⼼运⾏环境的变化导致应⽤⽆法正常运⾏的情况。

Docker特点

标准化交付: Docker 将应⽤打包成标准化单元,⽤于交付、部署。
轻量级:容器及包含了软件运⾏所需的所有环境,⽽且⾮常轻量级。
⾼可靠:容器化的应⽤程序,可以在任何 Linux 环境中始终如⼀的运⾏。
隔离性:容器化的应⽤程序,具备隔离性,这样多团队可以共享同⼀ Linux 系统资源。
Docker 安装
1. 切换到 root 账户,并输⼊ root ⽤户密码。
su root
2. 查看电脑上是否已经安装 Docker 软件。
yum list installed | grep docker
3. 如果已经安装过 Docker ,先卸载已安装的 Docker ,执⾏如下命令。如果报告未安装这些包,则没有问题
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest
docker-latest-logrotate docker-logrotate docker-engine
4. 安装所需的软件包。 yum-utils 提供了 yum-config-manager 应⽤,并 device-mapper-persistent-data lvm2
需要 devicemapper 存储驱动程序
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
5. 设置 Docker 镜像的仓库,添加软件源信息。
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
7. Docker 要求 CentOS 系统的内核版本⾼于 3.10 ,通过 uname -r 命令查看你当前的内核版本是否⽀持安装
Docker
uname -r
8. 安装 Docker-CE 软件。
docker-ce 表示社区免费版本
yum -y install docker-ce
6. 更新 yum 源。
sudo yum makecache fast
8. 安装 Docker-CE 软件
yum -y install docker-ce
9. 安装后查看 Docker 软件的版本。
docker -v
10. 查看 docker 概要信息。
docker info
11. 查看 docker 帮助⽂档
docker --help
2.3 Docker 守护进程相关命令
1. 启动 docker 服务
systemctl start docker
2. 查看 docker 服务运⾏状态。如果 docker 是在运⾏中,输⼊命令后会看到绿⾊的 " active (running) " 提示。
systemctl status docker
3. 重启 docker 服务。
systemctl restart docker
4. 停⽌ docker 服务。
systemctl stop docker
5. 设置 docker 开机⾃动启动。
systemctl enable docker
6. 禁⽤ Docker 开机⾃动启动。
systemctl disable docker
2.4 Docker 镜像加速器
1. 中科⼤镜像加速器
1. 通过 vim 命令编辑 daemon.json ⽂件(没有时新建该⽂件)。
vim /etc/docker/daemon.json
2. daemon.json ⽂件中输⼊如下内容。
{
"registry-mirrors" : [ "https://docker.mirrors.ustc.edu.cn" ]
}
注意:⼀定要保证该⽂件符合 JSON 规范,否则 Docker 将不能启动。
2. 阿⾥云镜像加速器
1. 访问阿⾥云镜像获取地址: https://promotion.aliyun.com/ntms/act/kubernetes.html
3. 进⼊控制台后,搜索【容器镜像服务】选项。
4. 在打开的容器镜像服务窗⼝中,选择【镜像加速器】选项,复制个⼈的加速器地址。

5. 通过 vim 命令编辑 daemon.json ⽂件(没有时新建该⽂件)。
vim /etc/docker/daemon.json
6. daemon.json ⽂件中输⼊如下内容。
{
"registry-mirrors" : [ "https://icnwj1s9.mirror.aliyuncs.com" ]
}
4. 重新启动服务
 sudo systemctl daemon-reload
 sudo systemctl restart docker
5. 检查加速器是否⽣效
检查加速器是否⽣效配置加速器之后,如果拉取镜像仍然⼗分缓慢,请⼿动检查加速器配置是否⽣效,在命令⾏执
docker info ,如果从结果中看到了如下内容,说明配置成功
$ docker info
...
Registry Mirrors:
https://docker.mirrors.ustc.edu.cn
...
3 Docker 常⽤命令
搜索镜像
docker search tomcat
拉取镜像
docker pull java
注意:受⽹速的影响,上述镜像在下载过程中⽐较缓慢,可能会出现⼀次下载不成功的情况,则重新拉取, 并耐⼼等待。
查看镜像
1. 查看本地镜像列表。
docker images
2. 列出本地镜像中 REPOSITORY ubuntu 的镜像列表。
docker images tomcat
删除镜像
1. 强制删除本地镜像 centos:7
# docker rmi -f centos:7
2.按镜像 ID 删除镜像。
docker rmi 90d5884b1ee0
容器相关命令
查看容器
列出容器。
docker ps
查看停⽌的容器。
docker ps -f status = exited
3.2.2 创建与启动容器
使⽤ nginx 镜像 ID 以后台模式启动⼀个容器,将容器的 80 端⼝映射到主机的 80 端⼝。
docker run -itd --name = mynginx -p 80 :80 fb5657adc892
  3.2.3 启动停⽌重启容器
docker stop :停⽌⼀个运⾏中的容器。
docker start :启动⼀个或多个已经被停⽌的容器。
docker restart :重启容器(重启已经关闭的容器)。
停⽌运⾏中的容器 mynginx
docker stop mynginx
停⽌所有正在运⾏的容器。
docker stop $(docker ps -aq)
启动已被停⽌的容器 mynginx
docker start mynginx
重启容器 mynginx
docker restart mynginx
3.2.4 登录容器
docker exec -i -t mynginx /bin/bash
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值