腾讯云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

如果因为网络问题无法访问可以使用阿里的镜像

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/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)
相关推荐
老大白菜11 分钟前
Windows 11 安装 Dify 完整指南 非docker环境
windows·docker·容器
VinciYan3 小时前
基于Jenkins+Docker的自动化部署实践——整合Git与Python脚本实现远程部署
python·ubuntu·docker·自动化·jenkins·.net·运维开发
tntlbb4 小时前
Ubuntu20.4 VPN+Docker代理配置
运维·ubuntu·docker·容器
Gabriel_liao5 小时前
Docker安装Neo4j
docker·容器·neo4j
Bessssss7 小时前
centos权限大集合,覆盖多种权限类型,解惑权限后有“. + t s”问题!
linux·运维·centos
R-sz8 小时前
14: curl#6 - “Could not resolve host: mirrorlist.centos.org; 未知的错误“
linux·python·centos
豆豆豆豆变8 小时前
Docker轻量级可视化工具Portainer
docker·容器·自动化运维
大熊程序猿8 小时前
xxl-job docker 安装
运维·docker·容器
董健正8 小时前
centos制作离线安装包
linux·运维·centos
shelby_loo8 小时前
使用 Docker 在 Ubuntu 下部署 Cloudflared Tunnel 服务器
服务器·ubuntu·docker