当前位置: 首页 > news >正文

docker安装及使用

什么是 docker

Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 AUFS 类的 Union FS 等技术,对进程进行封装隔离,属于 操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。最初实现是基于 LXC,从 0.7 版本以后开始去除 LXC,转而使用自行开发的 libcontainer,从 1.11 开始,则进一步演进为使用 runC 和 containerd。
Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得 Docker 技术比虚拟机技术更为轻便、快捷。

安装 docker

1、更新yum镜像仓库
# 设置docker的镜像仓库
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo(阿里仓库)
# 或者
yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo(中央仓库)# 设置docker镜像源
yum-config-manager \--add-repo \https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo  
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
2、安装docker
# 卸载 podman 和 buildah 这两个软件包
yum erase podman buildah# 安装docker
yum install docker-ce docker-ce-cli containerd.io --allowerasing# 启动Docker
systemctl start docker #启动docker
systemctl status docker #查看docker 运行状态# 查看安装的docker
docker --version
3、为Docker配置镜像源
# 创建docker配置文件
sudo mkdir -p /etc/docker# 配置镜像加速源
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://akchsmlh.mirror.aliyuncs.com"]
}
EOF# 查看镜像加速问价内容是否配置成功
sudo systemctl daemon-reload# 重启docker
sudo systemctl restart docker
4、安装docker-compose工具
# 下载docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep tag_name | cut -d '"' -f 4)/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose# 复制文件
cp /opt/install/docker-compose-linux-x86_64  /usr/local/bin/docker-compose-linux-x86_64# 修改文件名
mv /usr/local/bin/docker-compose-linux-x86_64  /usr/local/bin/docker-compose# 赋予可执行权限
chmod +x /usr/local/bin/docker-compose# 查看版本号
docker-compose --version

docker 常用命令

常用系统命令
# 查看docker概要信息
docker info# 开机启动
systemctl enable docker# 查看docker状态
systemctl status docker# 启动、停止、重启docker
systemctl start stop restart docker
常用镜像命令
# 列出本地主机上的镜像
docker images# 搜索镜像
docker search 镜像名字# 拉取(下载)镜像
docker pull 镜像名字# 查看镜像
docker system df 查看镜像/容器/数据卷所占的空间# 删除镜像
docker rmi 某个XXX镜像名字ID
# 删除单个
docker rmi  -f 镜像ID
# 删除多个
docker rmi -f 镜像名1:TAG 镜像名2:TAG 
# 删除全部
docker rmi -f $(docker images -qa)
常用容器命令
# 新建+启动命令
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS说明(常用):有些是一个减号,有些是两个减号
–name=“容器新名字” 为容器指定一个名称;
-d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行);
-i:以交互模式运行容器,通常与 -t 同时使用;
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;也即启动交互式容器(前台有伪终端,等待交互);
-P: 随机端口映射,大写P
-p: 指定端口映射,小写p
例如: 
# 创建并启动 oracle
docker run -d --name depth-oracle11g --privileged=true --restart=always -p 5004:1521  registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g# 列出当前所有正在运行的容器
docker ps
# 查找容器
docker ps | grep 容器名称# 强制停止容器
docker kill 容器ID或容器名# 删除已停止的容器
docker rm 容器ID# 启动、停止、重启容器
docker start stop restart 容器ID或者容器名# 查看容器日志
docker logs -f --tail=300 容器名# 进入容器
docker exec -it 容器名 /bin/bash# 从容器内拷贝文件到主机上
docker cp  容器ID:容器内路径 目的主机路径
# 从主机拷贝文件到容器内部
docker cp  主机路径 容器ID:容器内路径# 导出容器
docker export 容器ID > 文件名.tar# 导入容器
cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号
cat centos.tar.gz | docker import - xiaobear/centos:8.8

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • CS61B学习 part1
  • Python Web 中间件开发与优化指南
  • 使用sqoop报错
  • JavaScript可视化
  • Hive企业级调优[3]—— Explain 查看执行计划
  • Linux(ubuntu)(文件IO——fopen)
  • 多层感知机paddle
  • 人工智能|集成学习——混合专家模型 (MoE)
  • C#中线程池【异步】
  • C++从入门到入土(五)——再谈构造函数
  • UDP_SOCKET编程实现
  • 2、electron vue3 怎么创建子窗口,并给子窗口路由传参
  • WEB攻防-JS项目Node.js框架安全识别审计验证绕过
  • 好用的工具网址
  • 【资料分析】刷题日记3
  • 网络传输文件的问题
  • 【css3】浏览器内核及其兼容性
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • Centos6.8 使用rpm安装mysql5.7
  • Iterator 和 for...of 循环
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • Linux后台研发超实用命令总结
  • MySQL QA
  • PHP面试之三:MySQL数据库
  • Python语法速览与机器学习开发环境搭建
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 前端自动化解决方案
  • 入口文件开始,分析Vue源码实现
  • 我建了一个叫Hello World的项目
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • ​字​节​一​面​
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #pragma once
  • $.each()与$(selector).each()
  • $jQuery 重写Alert样式方法
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (八)Flink Join 连接
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (三)docker:Dockerfile构建容器运行jar包
  • (一)python发送HTTP 请求的两种方式(get和post )
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .NET MAUI Sqlite数据库操作(二)异步初始化方法
  • .net 按比例显示图片的缩略图
  • .NetCore发布到IIS
  • .net使用excel的cells对象没有value方法——学习.net的Excel工作表问题
  • .Net下C#针对Excel开发控件汇总(ClosedXML,EPPlus,NPOI)
  • /etc/sudoer文件配置简析
  • @SpringBootApplication 注解
  • @zabbix数据库历史与趋势数据占用优化(mysql存储查询)
  • [.NET 即时通信SignalR] 认识SignalR (一)
  • [2021 蓝帽杯] One Pointer PHP
  • [ACP云计算]组件介绍