• Docker基本配置及使用


    Docker基本配置及使用


    使用步骤

    1.卸载旧版

    代码如下:首先如果系统中已经存在旧的Docker,则先卸载

    yum remove docker \
        docker-client \
        docker-client-latest \
        docker-common \
        docker-latest \
        docker-latest-logrotate \
        docker-logrotate \
        docker-engine
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    2.配置Docker的yum库

    代码如下:首先要安装一个yum工具

    yum install -y yum-utils
    
    • 1

    安装成功后,执行命令,配置Docker的yum源

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

    3.安装Docker

    代码如下:最后,执行命令,安装Docker

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

    4.启动和校验

    代码如下:

    # 启动Docker
    systemctl start docker
    
    # 停止Docker
    systemctl stop docker
    
    # 重启
    systemctl restart docker
    
    # 设置开机自启
    systemctl enable docker
    
    # 执行docker ps命令,如果不报错,说明安装启动成功
    docker ps
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    5.部署MySQL

    代码如下:

    
    docker run -d \
    --name mysql \
    -p 3306:3306 \
    -e TZ=Asia/Shanghai \
    -e MYSQL_ROOT_PASSWORD=123456\
    mysql
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    docker run: 运行一个容器。
    -d: 在后台运行容器。
    –name mysql: 指定容器的名称为 “mysql”。
    -p 3306:3306: 将主机的 3306 端口映射到容器的 3306 端口,这样可以从主机访问容器中运行的 MySQL 服务。
    -e TZ=Asia/Shanghai: 设置容器的时区为亚洲/上海,即中国的时区。
    -e MYSQL_ROOT_PASSWORD=123456: 设置 MySQL 的 root 用户的密码为 “123456”。
    mysql: 指定要运行的镜像为 MySQL。


    6.常见命令

    docker pull  #拉取镜像
    docker push #推送镜像到
    docker images #查看本地镜像 
    docker rmi #删除本地镜像
    docker run #创建并运⾏容器(不能重复创建) 
    docker stop #停⽌指定容器 
    docker start #启动指定容器 
    docker restart #重新启动容器
    docker rm #删除指定容器
    docker ps #查看容器
    docker ps -a #列出所有容器的信息,包括它们的状态(启动和未启动)
    docker logs #查看容器运⾏⽇志 
    docker exec #进⼊容器 
    docker save #保存镜像到本地压缩⽂件 
    docker load #加载本地压缩⽂件到镜像 
    docker inspect #查看容器详细信息 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    7.数据卷

    数据卷(Volume)是 Docker 中用于持久化数据的一种机制,它允许容器与宿主机或其他容器共享数据,并且数据会在容器之间持续存在,即使容器被删除也不会丢失。数据卷(volume)是⼀个虚拟⽬录,是容器内⽬录与宿主机⽬录之间映射的桥梁。在这里插入图片描述

    数据卷命令

    docker volume create #创建数据卷 
    docker volume ls #查看所有数据卷 
    docker volume rm #删除指定数据卷
    docker volume inspect #查看某个数据卷的详情
    docker volume prune #清除数据卷 
    
    • 1
    • 2
    • 3
    • 4
    • 5

    # 1.⾸先创建容器并指定数据卷,注意通过 -v 参数来指定数据卷
    docker run -d --name nginx -p 80:80 -v html:/usr/share/nginx/html nginx
    # 2.然后查看数据卷
    docker volume ls
    # 结果
    DRIVER VOLUME NAME
    local 29524ff09715d3688eae3f99803a2796558dbd00ca584a25a4bbc193ca82459f
    local html
    # 3.查看数据卷详情
    docker volume inspect html
    # 结果
    [
    {
    "CreatedAt": "2024-05-17T19:57:08+08:00",
    "Driver": "local",
    "Labels": null,
    "Mountpoint": "/var/lib/docker/volumes/html/_data",
    "Name": "html",
    "Options": null,
    "Scope": "local"
    }
    ]
    # 4.查看/var/lib/docker/volumes/html/_data⽬录
    ll /var/lib/docker/volumes/html/_data
    # 可以看到与nginx的html⽬录内容⼀样,结果如下:
    总⽤量 8
    -rw-r--r--. 1 root root 497 314 2024 50x.html
    -rw-r--r--. 1 root root 615 314 2024 index.html
    # 5.进⼊该⽬录,并随意修改index.html内容
    cd /var/lib/docker/volumes/html/_data
    vi index.html
    # 6.打开⻚⾯,查看效果
    # 7.进⼊容器内部,查看/usr/share/nginx/html⽬录内的⽂件是否变化
    docker exec -it nginx bash
    
    • 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

    8.挂载本地⽬录或⽂件

    数据卷的⽬录结构较深,去操作数据卷⽬录会不太⽅便。在很多情况下,会直接将容器⽬录与宿主机指定⽬录挂载。挂载语法与数据卷类似:

    # 挂载本地⽬录
    -v 本地⽬录:容器内⽬录
    # 挂载本地⽂件
    -v 本地⽂件:容器内⽂件
    
    • 1
    • 2
    • 3
    • 4

    本地⽬录或⽂件必须以 / 或 ./ 开头,如果直接以名字开头,会被识别为数据卷名⽽⾮本地
    ⽬录名。

    -v mysql:/var/lib/mysql # 会被识别为⼀个数据卷叫mysql,运⾏时会⾃动创建这个数据卷
    -v ./mysql:/var/lib/mysql # 会被识别为当前⽬录下的mysql⽬录,运⾏时如果不存在会创建⽬录
    
    
    • 1
    • 2
    • 3
  • 相关阅读:
    用C语言实现状态机设计模式
    暑期JAVA学习(48)XML检索技术:Xpath
    #422 编码人声:行业大会的幕后故事
    陕西直销系统开发如何让别人听你讲?
    港科夜闻|香港科大计划建立北部都会区卫星校园完善"科大创新带",发展未来创新科技 未来医药发展及跨学科教育...
    LeetCode·每日一题·1582.二进制矩阵中的特殊位置·模拟
    Spark大数据实战之五:Spark安装
    原生AJAX
    黑盒测试用例设计 - 因果图法
    进公司第一天——配置环境
  • 原文地址:https://blog.csdn.net/qq_40408662/article/details/136717905