【Docker】安装、镜像、容器

news/2024/10/25 16:13:44/

什么是Docker?

Docker:是基于Go语言实现的开源项目。

  • Docker 是一个用于开发、交付和运行应用程序的开放平台。
  • 它允许开发人员将应用程序及其依赖包打包到一个可移植的容器中, 然后在任何流行的 Linux 机器上运行。Docker 容器是完全隔离的, 使用沙箱机制,相互之间没有任何接口。

Docker的主要目标是“Build,Ship and Run Any App,Anywhere” 也就是通过对应的组件的封装,分发,部署,运行等生命周期管理,是用户APP及运行环境能够做到 “一次封装,到处运行”

Docker的设计理念:构建(build)、运输(ship)、运行(running)

Docker的结构

  • image镜像:docker镜像就是一个只读模板,比如,一个镜像可以包含一个完整的centos,里面仅安装apache或用户的其他应用,镜像可以用来创建docker容器,另外docker提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下一个已经做好的镜像来直接使用;
  • container容器:docker利用容器来运行应用,容器是从镜像创建的运行实例,它可以被启动,开始、停止、删除、每个容器都是互相隔离的,保证安全的平台,可以把容器看做是要给简易版的linux环境(包括root用户权限、镜像空间、用户空间和网络空间等)和运行在其中的应用程序;
  • repostory仓库:仓库是集中存储镜像文件的沧桑,registry是仓库主从服务器,实际上参考注册服务器上存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag);
  • 仓库分为两种:公有仓库、私有仓库,最大的公开仓库是docker Hub,存放了数量庞大的镜像供用户下载;

国内仓库:

{"registry-mirrors": ["https://docker.m.daocloud.io","https://noohub.ru","https://huecker.io","https://dockerhub.timeweb.cloud","https://0c105db5188026850f80c001def654a0.mirror.swr.myhuaweicloud.com","https://5tqw56kt.mirror.aliyuncs.com","https://docker.1panel.live","http://mirrors.ustc.edu.cn/","http://mirror.azure.cn/","https://hub.rat.dev/","https://docker.ckyl.me/","https://docker.chenby.cn","https://docker.hpcloud.cloud","https://docker.m.daocloud.io"]
}

Docker安装【6步】

docker安装

第一步:安装依赖工具
yum -y install yum-utils device-mapper-persistent-data lvm2  
第二步:下载镜像源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
第三步: 安装
yum makecache fast
yum -y install docker-ce 
第四步: 启动
systemctl start docker  
第五步:查看状态
systemctl start docker  
第六步: 测试
docker run hello-world
  1. 安装依赖工具

yum -y install yum-utils device-mapper-persistent-data lvm2

  1. 下载镜像源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

  1. 安装docker

yum makecache fast 【创建元数据缓存】

yum -y install docker-ce 【安装docker】

4.启动docker

systemctl start docker

5.查看docker状态为active,活动中

systemctl status docker

6.测试 docker run hello-world

发现测试失败,需要跳转到docker目录,添加一个daemon.json文件

{"registry-mirrors": ["https://docker.m.daocloud.io","https://noohub.ru","https://huecker.io","https://dockerhub.timeweb.cloud","https://0c105db5188026850f80c001def654a0.mirror.swr.myhuaweicloud.com","https://5tqw56kt.mirror.aliyuncs.com","https://docker.1panel.live","http://mirrors.ustc.edu.cn/","http://mirror.azure.cn/","https://hub.rat.dev/","https://docker.ckyl.me/","https://docker.chenby.cn","https://docker.hpcloud.cloud","https://docker.m.daocloud.io"]
}

systemctl restart docker 重启docker服务:

docker info 查看镜像仓是否生效:

再次执行:

docker run hello-world

输出Hello from Docker!说明安装成功!

Docker镜像

获取镜像:
docker pull 镜像名称查看本地所有的镜像:
docker  images删除本地镜像
docker  rmi  镜像标识id

获取nginx镜像:

查看本地所有镜像:

删除本地镜像:

docker安装nginx:

docker安装mysql:

查看docker中的镜像:

删除镜像:

删除nginx镜像:

Docker容器

运行容器:
docker   run  -d  -p 宿主机端口:容器端口 --name   容器名称   镜像的标识
参数解释:-d 代表后台执行-p 将当前Linux的端口和容器的端口号进行映射--name 容器的名字
查看正在运行的容器:docker   ps   -qa
参数解释 :-a 所有容器(包括没有运行的容器)-q 只查看标识停止容器运行:
docker  stop  容器标识
启动容器:
docker  start  容器标识
删除容器: (只能删除停止运行的容器)
docker  rm   容器标识
docker rm  -f 容器标识  (强制删除容器,(即使是运行中的)

启动docker中的nginx:

关闭nginx:

启动nginx:

删除docker容器:

不能删除正在运行的docker容器,除非强制删除;

Docker安装nginx

 1.获取镜像
docker pull nginx2. 创建容器并运行
docker run --name=my-nginx -p 80:80 -d  镜像编号
3. 测试
使用浏览器

docker run -d --name=my-nginx -p 12345:80 605c77e624dd
docker ps    docker ps 是 Docker 命令行工具中用于列出当前正在运行的容器的一个命令

Docker部署nginx并访问网页

以下是 Nginx 在 Linux Docker 中的常见目录结构:
/etc/nginx: 存放 Nginx 的配置文件。
/var/log/nginx: 存放 Nginx 的日志文件。
/usr/share/nginx/html: 存放 Nginx 的静态资源文件。
查看nginx的配置文件
docker exec my-nginx cat /etc/nginx/nginx.conf
将网站部署到docker中的nginxdocker  cp  宿主机的网址目录   docker中的nginx名或id:/usr/share/nginx/html/docker  cp  ./qq  my-nginx:/usr/share/nginx/html/

Dockerfile:

Dockerfile文件:

# 获取nginx镜像
FROM nginx:latest
# 将本地的nginx文件拷贝到nginx的配置目录中
COPY nginx.conf /etc/nginx/conf.d/default.conf
# 将本地的html项目拷贝到nginx目录中
COPY ./html /usr/share/nginx/html
# 开放80端口
EXPOSE 80

nginx.conf文件:

server {listen 80;server_name localhost; location / {root   /usr/share/nginx/html;index  index.html index.htm;}
}

创建html文件夹,写入一个html页面:

创建docker镜像:

访问:


http://www.ppmy.cn/news/1541869.html

相关文章

华山论剑之Rust的Trait

华山论剑,群雄荟萃,各显神通。武林中人,各有所长,或剑法飘逸,或掌法刚猛,或轻功绝顶。这就好比Rust中的trait,它定义了一种武功套路,而不同的门派、不同的人,可以将这套武…

构建后端为etcd的CoreDNS的容器集群(六)、编写自动维护域名记录的代码脚本

本文为系列测试文章,拟基于自签名证书认证的etcd容器来构建coredns域名解析系统。 一、前置文章 构建后端为etcd的CoreDNS的容器集群(一)、生成自签名证书 构建后端为etcd的CoreDNS的容器集群(二)、下载最新的etcd容…

Python实现非线性数据结构-字典、集合、树、图

非线性数据结构:数据不遵循线性顺序,根据特定的关系或规则来组织数据。 1.字典:存储键值对,内部使用哈希表实现。时间复杂度是 O(1), 创建、新增、查询、删除键值对,访问值、修改值。 2.集合:…

【CSS3】css开篇基础(4)

1.❤️❤️前言~🥳🎉🎉🎉 Hello, Hello~ 亲爱的朋友们👋👋,这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章,请别吝啬你的点赞❤️❤️和收藏📖📖。如果你对我的…

Mybatis之参数处理

在MyBatis中,参数处理是非常关键的部分,它负责将传入的参数正确映射到SQL语句中 单个简单类型参数 简单类型对于mybatis来说都是可以自动类型识别的: 也就是说对于mybatis来说,它是可以自动推断出ps.setXxxx()方法的。ps.setSt…

springboot080房屋租赁管理系统的设计与实现(论文+源码)_kaic

毕 业 设 计(论 文) 题目:房屋租赁管理系统的设计与实现 摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好…

钉钉录播抓取视频

爬取钉钉视频 免责声明 此脚本仅供学习参考,切勿违法使用下载他人资源进行售卖,本人不但任何责任! 仓库地址: GItee 源码仓库 执行顺序 poxyM3u8开启代理getM3u8url用于获取m3u8文件userAgent随机请求头downVideo|downVideoThreadTqdm单线程下载和…

智创 AI 新视界 -- AIGC 背后的深度学习魔法:从原理到实践

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…