• [Centos]Docker卸载/安装&常用命令


    官方文档:https://docs.docker.com/engine/install/centos/

    1 卸载&安装

    1.1 卸载旧版本

    [root@centos704 ~]# yum list installed|grep docker
    containerd.io.x86_64            1.6.33-3.1.el7                 @docker-ce-stable
    docker-buildx-plugin.x86_64     0.14.1-1.el7                   @docker-ce-stable
    docker-ce.x86_64                3:26.1.4-1.el7                 @docker-ce-stable
    docker-ce-cli.x86_64            1:26.1.4-1.el7                 @docker-ce-stable
    docker-ce-rootless-extras.x86_64
                                    26.1.4-1.el7                   @docker-ce-stable
    docker-compose-plugin.x86_64    2.27.1-1.el7                   @docker-ce-stable
    [root@centos704 ~]# 
    
    yum remove docker*
    yum remove containerd.io.x86_64
    

    1.2 配置docker yum源

    sudo yum install -y yum-utils
    sudo yum-config-manager --add-repo http://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
    

    1.3 安装最新版本docker

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

    1.4 启动docker

    sudo systemctl start docker
    

    1.5 允许开机启动

    systemctl enable docker
    

    1.6 添加镜像加速

    目前国内很多镜像源都停止服务了,会碰到TLS handshake timeout的问题。例如腾讯、网易、上海交大的加速在我这个环境都不能成功拉取,阿里云的个人专属加速地址可以成功,但是目前阿里云不同步docker hub了,镜像都是老版本。下面几个是临时找到的,希望能存活久一些。

    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
        "registry-mirrors": [
            "https://docker.m.daocloud.io",
            "https://docker.nju.edu.cn",
            "https://dockerproxy.com"
        ]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    

    2 命令

    2.1 信息

    查看版本

    docker version
    

    查看详细信息

    docker info
    

    2.2 镜像

    docker image --help
    

    检索

    docker search
    
    docker search nginx
    

    拉取

    docker pull
    
    docker pull nginx
    docker pull nginx:1.26.0
    

    列出本地镜像

    docker images
    

    删除指定ID的镜像

    docker rmi e784f4560448
    docker rmi nginx:latest
    

    提交镜像

    docker commit --help
    docker commit -m "update index.html" mynginx mynginx:v1.0
    

    保存镜像

    docker save --help
    docker save -o mynginx.tar mynginx:v1.0
    

    加载镜像

    docker load --help
    docker load -i mynginx.tar
    

    登录

    docker login
    

    添加镜像别名

    docker tag --help
    docker tag mynginx:v1.0 zhangbe1hai/mynginx:v1.0
    

    推送

    docker push zhangbe1hai/mynginx:v1.0
    

    2.3 容器

    运行一个新容器

    docker run --help
    docker run nginx
    

    后台启动

    docker run -d nginx
    

    设置容器名

    docker run --name mynginx nginx
    

    端口映射

    docker run -p 80:80 nginx
    

    查看运行中的容器

    docker ps
    

    查看所有容器

    docker ps -a
    

    启动已停止的容器

    docker start 592
    

    停止容器

    docker stop keen_blackwell
    

    重启容器

    docker restart 592
    

    查看容器状态

    docker stats 592
    

    查看容器的细节

    docker inspect a33
    

    查看容器日志

    docker logs 592
    

    删除容器

    docker rm 592
    docker rm -f 592
    

    批量删除容器

    docker rm -f $(docker ps -aq)
    

    交互模式进入容器,使用bash

    docker exec -it mynginx /bin/bash
    docker exec -it mynginx bash
    

    退出容器

    exit
    

    2.4 存储

    2.4.1 目录挂载
    docker run -v /opt/files/nginxhtml:/usr/share/nginx/html nginx
    

    外部没有目录会自动创建

    docker run -d --name mynginx -p 80:80 -v /opt/files/nginxhtml:/usr/share/nginx/html nginx
    

    也可以挂载文件

    2.4.2 卷映射
    docker run -d -p 81:80 -v ngconfig:/etc/nginx/ -v /opt/files/nginxhtml:/usr/share/nginx/html --name nginx_01 nginx
    

    列出所有卷

    docker volume ls
    

    创建一个卷

    docker volume create haha
    

    查看一个卷的详情

    docker volume inspect ngconfig
    
    cd /var/lib/docker/volumes/ngconfig/_data
    

    2.5 网络

    docker为每个容器分配唯一IP,docker0默认不支持主机域名,创建自定义网络,容器名就是稳定域名。

    docker network --help
    

    创建一个自定义网络

    docker network create mynet
    

    创建容器时指定加入自定义网络

    docker run -d -p 81:80 --name app2 --network mynet nginx
    

    3 docker compose

    3.1 命令

    上线

    docker compose -f compose.yaml up -d 
    

    下线

    docker compose -f compose.yaml down
    docker compose -f compose.yaml down --rmi all -v
    

    启动

    docker compose start x1 x2 x3
    

    停止

    docker compose stop x1 x3
    

    扩容

    docker compose scale x2=3
    

    3.2 compose.yaml

    https://docs.docker.com/compose/compose-file

    name: myblog
    services:
      mysql:
        container_name: mysql
        image: mysql:8.0
        ports:
          - "3306:3306"
        environment:
          - MYSQL_ROOT_PASSWORD=123456
          - MYSQL_DATABASE=wordpress
        volumes:
          - mysql-data:/var/lib/mysql
          - /app/myconf:/etc/mysql/conf.d
        restart: always
        networks:
          - blog
      wordpress:
        container_name: wordpress
        image: wordpress
        ports:
          - "8080:80"
        environment:
          WORDPRESS_DB_HOST: mysql
          WORDPRESS_DB_USER: root
          WORDPRESS_DB_PASSWORD: 123456
          WORDPRESS_DB_NAME: wordpress
        volumes:
          - wordpress:/var/www/html
        restart: always
        networks:
          - blog
        depends_on:
          - mysql
    volumes:
      mysql-data:
      wordpress:
    networks:
      blog:
    

    4 Dockerfile

    https://docs.docker.com/reference/dockerfile/

    常见指令作用
    FROM指定镜像基础环境
    RUN运行自定义命令
    CMD容器启动命令或参数
    LABEL自定义标签
    EXPOSE指定暴露端口
    ENV环境变量
    ADD添加文件到镜像
    COPY复制文件到镜像
    ENTRYPOINT容器固定启动命令
    VOLUME数据卷
    USER指定用户和用户组
    WORKDIR指定默认工作目录
    ARG指定构建参数
    FROM openjdk:17
    
    
    LABEL author=lfy
    
    COPY app.jar /app.jar
    
    EXPOSE 8080
    
    ENTRYPOINT ["java","-jar","/app.jar"]
    
    docker build -f Dockerfile -t myjavaapp:v1.0 .
    
  • 相关阅读:
    137.(前端)订单管理显示物流信息——前端利用axios调用后端接口并且使用timeline时间线效果展示
    OA项目之会议通知(查询&是否参会&反馈详情)
    JC/T 239-2014 蒸压粉煤灰砖检测
    wirehark数据分析与取证misc1.pcap
    非关系型数据库MongoDB是什么/SpringBoot如何使用或整合MongoDB
    教你如何使用Zbrush雕刻复杂的角色模型!
    Python调试指南
    k8s之有状态服务部署基石(基础知识)
    【组件】Vue组件之间的通信父传子 | 子传父
    基于云计算的区域LIS系统系统源码
  • 原文地址:https://blog.csdn.net/weixin_43724577/article/details/139773553