【Docker系列】容器基础、Docker镜像管理

  • 阿里云国际版折扣https://www.yundadi.com

  • 阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

    个人名片
    对人间的热爱与歌颂可抵岁月冗长🌞
    Github👨🏻‍💻念舒_C.ying
    CSDN主页✏️念舒_C.ying
    个人博客🌏 念舒_C.ying

    2 容器基础

    2.1 Docker镜像查找

    命令查找

    docker search mysql
    

    docker官网查找

    https://hub.docker.com
    

    2.2 Docker镜像管理

    拉取MySQL镜像

    docker pull mysql:latest
    

    查看本地镜像

    docker images
    

    镜像加速阿里云

    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["https://x5k4h8y7.mirror.aliyuncs.com"]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    

    Daocloud镜像站加速

    curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
    

    镜像删除

    docker rmi hello-world
    

    2.3 容器管理

    运行容器

    -d #在后台运行
    –name #命名
    -i #交互式操作
    -t #终端
    -p #端口
    -e #参数要求大写

    docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
    

    查看所有运行的容器

    -a可列出运行或没有运行的容器

    docker ps
    docker ps -a
    

    查看该容器占有的内存等

    docker stats mysql
    

    查看该容器日志后3条

    docker logs --tail 3 mysql
    

    进入已运行的容器

    docker exec -it mysql bash
    

    启动容器

    docke start mysql
    

    停止容器(默认10秒-t可以跟时间)

    docker stop mysql
    

    重启容器

    docke restart mysql
    

    容器自启动

    no #默认值不自动重启该容器
    on-failure #当出现异常退出时自动重启该容器
    always #如果容器停止则总是重启该容器。若该容器通过手动方式停止则仅在Docker服务重启或通过手动方式启动时启动。

    docker run -d --restart always --name mysql-always -p 3306:3306 -e MYSQL_ROOT_PASSWORD=000000 mysql
    

    容器中更换国内源更新软件源获安装软件

    mv /etc/apt/sources.list /etc/apt/sources.list.bak
    
    tee /etc/apt/sources.list << EOF
    deb http://mirrors.ustc.edu.cn/debian stable main contrib non-free
    deb http://mirrors.ustc.edu.cn/debian stable-updates main contrib non-free
    EOF
    
    apt-get update
    apt-get install vim
    

    容器删除

    -f #强制删除运行中的容器。
    删除多个容器用空格隔开用容器名或者ID值都可以删除

    docker rm mysql
    docker rm -f mysql
    

    删除所有已停止的容器

    docker container prune
    

    删除所有容器

    docker rm -f $(docker ps -qa)
    

    容器数据拷贝可以互相拷贝

    cp #跟容器路径和宿主机路径

    docker cp mysql:/etc/my.cnf ./
    docker cp ./ mysql:/etc/my.cnf
    

    容器导出

    -o #路径和文件名 容器名

    docker export -o /mysql.tar mysql
    

    镜像导入(自定义导入镜像后需要额外处理)

    docker-entrypolint.sh #容器启动前的预处理
    mysqld #预处理脚本的参数

    docker run -d --name mysql-test -p 3307:3306 -e MYSQL_ROOT_PASSWORD=000000 mysql-test:v1.0 docker-entrypoint.sh mysqld
    

    自定义镜像创建

    -a #作者信息
    -c #应用Dockerfile指令
    -m #备注信息
    -p #默认值true

    docker commit -a "Zhao Jie" -m "mysql5.7(12.21)" mysql5.7 mysql:12.21
    

    2.4 Docker卷与绑定挂载

    卷创建

    -d #指定卷的驱动名称
    -o #

    docker volume create [卷名]
    

    卷列表查看

    docker volume ls
    

    卷详细查看

    docker volume inspect [卷名]
    

    卷删除

    docker volume rm [卷名]
    

    删除所有未被使用的卷

    docker volume prune 
    

    卷使用

    type #卷的类型
    src #卷的名称
    dst #卷的挂载路径

    –mount --volume -v #挂载参数

    docker run -d --name mysql-test --mount type=volume,src=my,dst=/var/lib/mysql -p 3310:3306 -e MYSQL_ROOT_PASSWORD=000000 mysql:5.7
    

    期待下次的分享别忘了三连支持博主呀~
    我是 念舒_C.ying 期待你的关注~💪💪💪

  • 阿里云国际版折扣https://www.yundadi.com

  • 阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
    标签: Docker