【Linux】Linux Docker 安装方法 1. Linux Docker 安装方法 前置条件
64-bit 系统
kernel 3.10+ (内核为 3.1 以上)
linux 系统
检查内核版本,返回的值大于3.10即可
更新yum
添加yum仓库(直接拷贝即可) 1 2 3 4 5 6 7 8 tee /etc/yum.repos.d/docker.repo <<-'EOF' [dockerrepo] name=Docker Repository baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/ enabled=1 gpgcheck=1 gpgkey=https://yum.dockerproject.org/gpg EOF
安装 1 yum install -y docker-engine
启动docker 1 systemctl start docker.service
验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
设置开机自启动 1 sudo systemctl enable docker
查看当前进程
2. 什么是Dokcer 一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口;
使用go语言编写,在LCX(linux容器)基础上进行的封装
简单来说: 1)就是可以快速部署启动应用 2)实现虚拟化,完整资源隔离 3)一次编写,四处运行(有一定的限制,比如Docker是基于Linux 64bit的,无法在32bit的linux/Windows/unix环境下使用)
为什么使用 开箱即用,快速部署,可移植性强,环境隔离
1、提供一次性的环境,假如需要安装Mysql,则需要安装很多依赖库、版本等,如果使用Docker则通过镜像就可以直接启动运行
2、快速动态扩容,使用docker部署了一个应用,可以制作成镜像,然后通过Dokcer快速启动
3、组建微服务架构,可以在一个机器上模拟出多个微服务,启动多个应用
4、更好的资源隔离和共享
linux 简介: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 Linux Standard Base的缩写,lsb_release命令用来显示LSB和特定版本的相关信息 命令: lsb_release -a 阿里云安装手册: https://help.aliyun.com/document_detail/51853.html?spm=a2c4g.11186623.6.820.RaToNY 常见问题: https://blog.csdn.net/daluguishou/article/details/52080250 Docker 镜像 - Docker images: 容器运行时的只读模板,操作系统+软件运行环境+用户程序 class User{ private String userName; private int age; } Docker 容器 - Docker containers: 容器包含了某个应用运行所需要的全部环境 User user = new User() Docker 仓库 - Docker registeries: 用来保存镜像,有公有和私有仓库,好比Maven的中央仓库和本地私服 镜像仓库: (参考)配置国内镜像仓库:https://blog.csdn.net/zzy1078689276/article/details/77371782 对比面向对象的方式 Dokcer 里面的镜像 : Java里面的类 Class Docker 里面的容器 : Java里面的对象 Object 通过类创建对象,通过镜像创建容器
阿里云安装linux docker (centeros7 版本) 使用脚本安装 Docker 1、使用 sudo
或 root
权限登录 Centos。
2、确保 yum 包更新到最新。
3、执行 Docker 安装脚本。
1 $ curl -fsSL https://get.docker.com/ | sh
执行这个脚本会添加 docker.repo
源并安装 Docker。
4、启动 Docker 进程。
1 $ sudo service docker start
5、验证 docker
是否安装成功并在容器中执行一个测试的镜像。
1 $ sudo docker run hello-world
到此,docker 在 CentOS 系统的安装完成。
概念 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 Docker 镜像 - Docker images: 容器运行时的只读模板,操作系统+软件运行环境+用户程序 class User{ private String userName; private int age; } Docker 容器 - Docker containers: 容器包含了某个应用运行所需要的全部环境 User user = new User() Docker 仓库 - Docker registeries: 用来保存镜像,有公有和私有仓库,好比Maven的中央仓库和本地私服 镜像仓库: (参考)配置国内镜像仓库: https://blog.csdn.net/zzy1078689276/article/details/77371782 对比面向对象的方式 Dokcer 里面的镜像 : Java里面的类 Class Docker 里面的容器 : Java里面的对象 Object 通过类创建对象,通过镜像创建容器
docker 常用命令 常用命令(安装部署好Dokcer后,执行的命令是docker开头),xxx是镜像名称
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 搜索镜像:docker search xxx 列出当前系统存在的镜像:docker images 拉取镜像:docker pull xxx xxx是具体某个镜像名称(格式 REPOSITORY:TAG) REPOSITORY:表示镜像的仓库源,TAG:镜像的标签 运行一个容器:docker run -d --name "xdclass_mq" -p 5672:5672 -p 15672:15672 rabbitmq:management docker run - 运行一个容器 -d 后台运行 -p 端口映射 rabbitmq:management (格式 REPOSITORY:TAG),如果不指定tag,默认使用最新的 --name "xxx" 列举当前运行的容器:docker ps 检查容器内部信息:docker inspect 容器名称 删除镜像:docker rmi IMAGE_NAME 强制移除镜像不管是否有容器使用该镜像 增加 -f 参数, 停止某个容器:docker stop 容器名称 启动某个容器:docker start 容器名称 移除某个容器: docker rm 容器名称 (容器必须是停止状态) 文档: https://blog.csdn.net/permike/article/details/51879578
3. Docker部署Nginx服务器 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 简介:讲解使用Docker部署Nginx服务器实战 1、获取镜像 docker run (首先会从本地找镜像,如果有则直接启动,没有的话,从镜像仓库拉起,再启动) docker search nignx 2、列举 docker images 3、拉取 docker pull nignx 3、启动 docker run -d --name "xdclass_nginx" -p 8088:80 nginx docker run -d --name "xdclass_nginx2" -p 8089:80 nginx docker run -d --name "xdclass_nginx3" -p 8090:80 nginx 4、访问 如果是阿里云服务,记得配置安全组,腾讯云也需要配置,这个就是一个防火墙
4. 构建自己的私人镜像 教程 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 1)登录: docker login --username=794666918@qq.com registry.cn-shenzhen.aliyuncs.com 2) 推送本地镜像: docker tag [ImageId] registry.cn-shenzhen.aliyuncs.com/xdclass/xdclass_images:[镜像版本号] 例子: docker tag 2f415b0e9a6e registry.cn-shenzhen.aliyuncs.com/xdclass/xdclass_images:xd_rabbitmq-v1.0.2 docker push registry.cn-shenzhen.aliyuncs.com/xdclass/xdclass_images:xd_rabbitmq-v1.0.2 3)拉取镜像 线上服务器拉取镜像: docker login --username=794666918@qq.com registry.cn-shenzhen.aliyuncs.com docker pull registry.cn-shenzhen.aliyuncs.com/xdclass/xdclass_images:xd_rabbitmq-v1.0.2 启动容器: docker run -d --name "xdclass_mq" -p 5672:5672 -p 15672:15672 2f415b0e9a6e 1. 登录阿里云Docker Registry $ sudo docker login --username=xiaolaodong11 registry.cn-shenzhen.aliyuncs.com 用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。 您可以在产品控制台首页修改登录密码。 2. 从Registry中拉取镜像 $ sudo docker pull registry.cn-shenzhen.aliyuncs.com/zxd-registry/zxd-res:[镜像版本号] 3. 将镜像推送到Registry $ sudo docker login --username=xiaolaodong11 registry.cn-shenzhen.aliyuncs.com $ sudo docker tag [ImageId] registry.cn-shenzhen.aliyuncs.com/zxd-registry/zxd-res:[镜像版本号] $ sudo docker push registry.cn-shenzhen.aliyuncs.com/zxd-registry/zxd-res:[镜像版本号] 请根据实际镜像信息替换示例中的[ImageId]和[镜像版本号]参数。 4. 选择合适的镜像仓库地址 从ECS推送镜像时,可以选择使用镜像仓库内网地址。推送速度将得到提升并且将不会损耗您的公网流量。 如果您使用的机器位于经典网络,请使用 registry-internal.cn-shenzhen.aliyuncs.com 作为Registry的域名登录,并作为镜像命名空间前缀。 如果您使用的机器位于VPC网络,请使用 registry-vpc.cn-shenzhen.aliyuncs.com 作为Registry的域名登录,并作为镜像命名空间前缀。 5. 示例 使用"docker tag"命令重命名镜像,并将它通过专有网络地址推送至Registry。 $ sudo docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE registry.aliyuncs.com/acs/agent 0.7-dfb6816 37bb9c63c8b2 7 days ago 37.89 MB $ sudo docker tag 37bb9c63c8b2 registry-vpc.cn-shenzhen.aliyuncs.com/acs/agent:0.7-dfb6816 使用"docker images"命令找到镜像,将该镜像名称中的域名部分变更为Registry专有网络地址。 $ sudo docker push registry-vpc.cn-shenzhen.aliyuncs.com/acs/agent:0.7-dfb6816