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

腾讯云centos上安装docker

下面的操作是在root用户下操作的,如果非root用户在命令行前加上sudo 

1. 系统及内核查看

  • 操作系统:64位的CentOS 7或更新版本。
  • 内核版本:最低要求是3.10,推荐使用3.10或更高版本。
    #查看内核版本
(base) [klfwjfwea@VM-0-6-centos ~]$ uname -r
3.10.0-1160.24.1.el7.x86_64#查看系统版本
(base) [klfwjfwea@VM-0-6-centos ~]$ cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)#查看系统架构    
(base) [klfwjfwea@VM-0-6-centos ~]$ uname -m
x86_64

 2. 卸载旧版本

不确定是否安装过docker也可以执行,卸载时会提升找不到相应的包,如下所示:

yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine

# yum remove docker \
>                   docker-client \
>                   docker-client-latest \
>                   docker-common \
>                   docker-latest \
>                   docker-latest-logrotate \
>                   docker-logrotate \
>                   docker-engine
Loaded plugins: fastestmirror
No Match for argument: docker
No Match for argument: docker-client
No Match for argument: docker-client-latest
No Match for argument: docker-common
No Match for argument: docker-latest
No Match for argument: docker-latest-logrotate
No Match for argument: docker-logrotate
No Match for argument: docker-engine
No Packages marked for removal

卸载Docker软件包并不会自动删除与Docker相关的所有数据。特别是以下数据不会被删除:

  • 镜像(images)
  • 容器(containers)
  • (volumes)
  • 网络(networks)

这些数据存储在 /var/lib/docker/ 目录中。如果你希望完全删除所有Docker相关的数据,你需要手动删除这个目录:

rm -rf /var/lib/docker

注意:删除此目录会永久删除所有Docker镜像、容器、卷和网络。请确保你已经备份了需要保留的数据。

3. 更新系统,安装依赖包

更新系统

yum update -y

安装依赖包

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

设置官方仓库

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

4. 安装docker及其插件

yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

启动docker

systemctl start docker

设置docker开机启动(非必须)

systemctl enable docker

关闭docker

systemctl stop docker

重启docker

#更改配置文件时需要使用下面两条命令systemctl daemon-reload
systemctl restart docker#只是简单的重启不涉及到配置改变直接使用下面的命令即可
systemctl restart docker

查看docker状态

systemctl status docker

 

重启时什么时候需要使用 daemon-reload

  • 当你修改了Docker的配置文件(例如 /etc/docker/daemon.json)时。
  • 当你修改了任何与systemd服务相关的配置文件时。

5. 使用腾讯云Docker镜像源加速

编辑或者新建配置文件: /etc/docker/daemon.json 添加下面的内容

vi /etc/docker/daemon.json

 

{"registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}

重启docker即可

systemctl daemon-reload
systemctl restart docker

查看镜像源是否安装成功

docker info

 可以看到下面的提示说明配置成功

6. 验证docker是否安装成功

使用hello-world镜像创建一个示例来验证

docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c1ec31eb5944: Pull complete 
Digest: sha256:266b191e926f65542fa8daaec01a192c4d292bff79426f47300a046e1bc576fd
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

 7. docker常用命令

docker常用命令根据其使用流程,使用镜像创建容器(实例),这里可以分为两大类镜像相关和容器(实例)相关,暂时只用到这些知识,后序再补充

镜像和容器的操作都可以使用id和name,因为name在当前主机上也是唯一的

 镜像相关

1. 列出所有镜像
docker images
2. 搜索镜像
docker search IMAGE_NAME
3. 拉取镜像
docker pull IMAGE_NAME

拉取镜像时如果不指定标签默认拉取最新的镜像,如果需要指定版本可以在镜像名后加上:版本号

docker pull ubuntu:latest 拉取最新的镜像可以省略 :latest

docker pull ubuntu:20.04 拉取指定版本,拉取 ubuntu 的 20.04 版本

 如果你想查看某个镜像的所有可用标签,可以访问Docker Hub上的该镜像页面。例如,访问 Ubuntu镜像页面 可以查看所有可用的标签和版本。

4. 删除镜像
docker rmi IMAGE_ID
5. 删除所有未使用的镜像
docker rmi $(docker images -q)

 

容器相关

1. 创建并启动容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

示例

运行一个ubuntu镜像并进入交互式终端:

docker run -it ubuntu /bin/bash

主要选项(OPTIONS)

  • -d:以守护进程模式运行容器(在后台运行)。
  • -it:结合使用-i(交互式)和-t(伪终端)选项,使容器能够交互。
  • --name:为容器指定一个名称。
  • -p:指定端口映射,例如-p 8080:80
  • -v:挂载一个主机目录或卷到容器中,例如-v /host/path:/container/path
  • --rm:容器停止后自动删除容器。

示例命令

  1. 运行并进入交互式终端

    docker run -it ubuntu /bin/bash
  2. 以守护进程模式运行一个容器

    docker run -d --name mycontainer ubuntu sleep 1000

    后台守护进程主要用户后台长期运行的服务,比如mysql等,如果容器中运行的程序结束,那么容器也会结束运行.所以后台启动docker容器适合运行长期后台运行的服务.
     

  3. 运行一个带端口映射的容器

    docker run -d -p 8080:80 nginx

    命令将主机(服务器)的8080端口映射到容器的80端口。具体来说,这意味着:
    -d:以守护进程模式(后台)运行容器。
    -p 8080:80:将主机的8080端口映射到容器的80端口。主机上的任何访问8080端口的请求都会被转发到容器的80端口。

    这样,主机上的http://localhost:8080http://YOUR_HOST_IP:8080 将被转发到容器中的Nginx服务器的80端口。

  4. 挂载主机目录到容器

    docker run -d -v /host/data:/data myimage
2. 列出所有容器
docker ps -a

docker ps会列出正在运行的程序加上 -a会列出所有容器

3. 停止运行中的容器
docker stop CONTAINER_ID
4. 启动已经停止的容器
docker start CONTAINER_ID

docker start 命令在后台守护模式启动容器,不提供交互式终端,要进入容器的交互式终端,可以使用 docker exec -it CONTAINER_ID /bin/bash 参考下面的第 6条

5. 删除一个容器
docker rm CONTAINER_ID

 docker rm删除容器docker rmi 删除镜像,后面的i就是镜像image缩写

6. 进入运行中的容器
docker exec -it CONTAINER_ID /bin/bash
7. 查看容器日志
docker logs CONTAINER_ID
 8. 重启容器
docker restart CONTAINER_ID
 9. 查看容器的资源占用情况
docker stats CONTAINER_ID
10. 查看容器的详细信息
docker inspect CONTAINER_ID
11. 停止所有运行中的容器
docker stop $(docker ps -q)
12. 删除所有容器
docker rm $(docker ps -a -q)

相关文章:

  • 在LabVIEW项目管理中,如何确保团队之间的有效沟通和协作
  • 算法题day37日(补5.23日卡:贪心算法day4)
  • 【DevOps】网络安全进阶之路:打造更安全、更可靠的网站
  • C语言笔记第10篇:内存函数
  • 【动手学深度学习】卷积神经网络(AlexNet)的研究详情
  • Java——Stream流(2/2):Stream流的中间方法、终结方法(方法、案例演示)
  • 掌握Django文件处理:一步步构建上传功能
  • 安全生产新篇章:可燃气体报警器检验周期的国家标准解读
  • 正则表达式 0.1v
  • Spring AI 第二讲 之 Chat Model API 第七节Mistral AI Chat
  • Docker:定义未来的软件部署
  • JVM之【字节码/Class文件/ClassFile 内容解析】
  • 【C语言之排序】-------六大排序
  • LabVIEW软件开发人员如何在软件开发中捕捉需求?
  • 前端 Web 与原生应用端 WebView 通信交互 - HarmonyOS Next
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • Cumulo 的 ClojureScript 模块已经成型
  • github指令
  • Javascript 原型链
  • JavaScript设计模式系列一:工厂模式
  • jQuery(一)
  • KMP算法及优化
  • Linux CTF 逆向入门
  • python docx文档转html页面
  • Python 反序列化安全问题(二)
  • uni-app项目数字滚动
  • 分布式任务队列Celery
  • 离散点最小(凸)包围边界查找
  • 浅谈web中前端模板引擎的使用
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 线性表及其算法(java实现)
  • 小程序 setData 学问多
  • 《码出高效》学习笔记与书中错误记录
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ​HTTP与HTTPS:网络通信的安全卫士
  • ​渐进式Web应用PWA的未来
  • ​十个常见的 Python 脚本 (详细介绍 + 代码举例)
  • # 飞书APP集成平台-数字化落地
  • #etcd#安装时出错
  • #php的pecl工具#
  • $.ajax()参数及用法
  • ${factoryList }后面有空格不影响
  • (13):Silverlight 2 数据与通信之WebRequest
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (4)STL算法之比较
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (生成器)yield与(迭代器)generator
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战