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

二.docker安装与常用命令

二.docker安装与常用命令

  • 1.初始环境安装
    • 1)先安装必要的依赖包
    • 2)添加docker阿里云 GPG 密钥、设置stable 仓库
  • 2.安装docker
    • 1)执行如下命令安装:
    • 2)查看安装版本及运行状态:
    • 3)安装历史版本的docker方法:
    • 4)固定docker版本,不自动更新
    • 5)设置非root用户的权限
    • 6)安装docker-compose
    • 7)阿里云镜像加速器的配置
    • 8)Docker的测试
    • 9)卸载 Docker
  • 3.docker常用命令
    • 1)帮助启动类命令
    • 2)镜像命令
    • 3)容器命令

Docker依赖于已存在并运行的Linux内核环境,所以docker必须部署在Linux内核的系统上。Window系统需先安装虚拟机,通过虚拟机中Linux部署。

1.初始环境安装

安装docker容器需要先配置好一台ubuntu服务器,并配置好网络连接。Ubuntu中使用apt来安装软件包,Red Hat、CentOS使用rpm或yum来安装软件包

1)先安装必要的依赖包

  • apt install gcc
  • apt install g++
  • apt install yum-utils
  • sudo apt update
  • sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common -y

2)添加docker阿里云 GPG 密钥、设置stable 仓库

  • curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
  • sudo add-apt-repository \ "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
    在这里插入图片描述

2.安装docker

1)执行如下命令安装:

sudo apt-get update
sudo apt install docker-ce docker-ce-cli containerd.io

在这里插入图片描述

2)查看安装版本及运行状态:

docker --version
sudo systemctl status docker

在这里插入图片描述

3)安装历史版本的docker方法:

apt list -a docker-ce            ## 查看 Docker 软件源中所有可用的版本
sudo apt install docker-ce=<VERSION> docker-ce-cli=<VERSION> containerd.io

在这里插入图片描述

4)固定docker版本,不自动更新

sudo apt-mark hold docker-ce

5)设置非root用户的权限

默认情况下,只有 root 或者 有 sudo 权限的用户可以执行 Docker 命令。
想要以非 root 用户执行 Docker 命令,需要将用户添加到 Docker 用户组,该用户组在 Docker_ce 软件包安装过程中被创建。输入:

sudo usermod -aG docker $USER ## $USER是一个环境变量,代表当前用户名。

执行后重新登录用户

6)安装docker-compose

sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.3/docker-compose-linux-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version

在这里插入图片描述

7)阿里云镜像加速器的配置

拉取 hub.docker.com 的镜像,会发现速度很慢,是因为有墙。可以配置阿里云镜像加速器。
阿里云地址:https://promotion.aliyun.com/ntms/act/kubernetes.html
控制台->容器镜像服务->镜像加速器->获取加速地址
在这里插入图片描述
vim /etc/docker/daemon.json
加入配置文件内容如下:

{"registry-mirrors": ["https://docker.m.daocloud.io","https://dockerproxy.com","https://docker.mirrors.ustc.edu.cn","https://docker.nju.edu.cn","https://jwg89vdq.mirror.aliyuncs.com"]
}

重启docker:

sudo systemctl daemon-reload
sudo systemctl restart docker

8)Docker的测试

docker container run hello-world

在这里插入图片描述

9)卸载 Docker

停止所有正在运行的容器,并且移除所有的 docker 对象:

docker container stop $(docker container ls -aq)
docker system prune -a --volumes

使用apt像卸载其他软件包一样来卸载 Docker:

sudo apt-get purge docker-ce docker-ce-cli containerd.io
sudo apt autoremove

3.docker常用命令

1)帮助启动类命令

启动docker:sudo systemctl start docker
停止docker:sudo systemctl stop docker
重启docker:sudo systemctl restart docker
查看docker状态:sudo systemctl status docker
开机启动:sudo systemctl enable docker
禁用开机自启动:sudo systemctl disable docker
查看docker概要信息:sudo docker info
查看docker总体帮助文档:sudo docker –help
查看docker命令帮助文档:sudo docker <命令> --help

2)镜像命令

  • 列出本地主机上的镜像:
    docker images 或使用 -a 参数查看所有镜像(包括中间镜像层):docker images -a
    REPOSITORY:镜像的仓库名称
    TAG:镜像的标签
    IMAGE ID:镜像的唯一标识 ID
    CREATED:镜像创建的时间
    SIZE:镜像的大小

  • 在官方仓库中搜索某个镜像:
    docker search –limit 列出的镜像数 镜像名字
    NAME:镜像名称
    DESCRIPTION:镜像的简要描述
    STARS:受欢迎程度(星标数)
    OFFICIAL:是否为官方镜像([OK] 表示官方)
    AUTOMATED:是否为自动化构建的镜像

  • 镜像下载:
    docker pull 镜像名字[:TAG]
    没有TAG就是下载最新版

  • 查看 Docker 整体磁盘使用情况:
    docker system df

  • 删除单个镜像:
    docker rmi -f 镜像ID

  • 删除多个镜像:
    docker rmi -f 镜像名1:TAG 镜像名2:TAG

  • 删除全部镜像:
    docker rmi -f $(docker images -qa)

3)容器命令

  • 新建+启动容器:
    docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
    OPTIONS说明(常用):有些是一个减号,有些是两个减号
    -d:后台运行容器。
    –name:为容器指定一个名称。
    -v:挂载一个卷(目录或文件映射)。
    -e:设置环境变量。
    –rm:容器停止后自动删除。
    -it:以交互模式运行容器(通常用于终端操作)。
    -p:映射主机端口到容器端口。
    在这里插入图片描述
    示例命令:
     启动一个 Nginx 容器并后台运行:

    docker run -d --name mynginx -p 80:80 nginx
    

     启动一个带交互终端的 Ubuntu 容器:

    docker run -it --name myubuntu ubuntu /bin/bash
    

     挂载本地目录并运行容器:

    docker run -d --name myapp -v /host/data:/container/data -p 3000:3000 myapp
    

     设置环境变量并运行容器:

    docker run -d --name mydb -e MYSQL_ROOT_PASSWORD=123456 mysql
    

     容器退出后自动删除:

    docker run --rm -it ubuntu /bin/bash
    
  • 列出当前所有正在运行的容器:
    docker ps [OPTIONS]
    OPTIONS说明(常用):
    -a :列出当前所有正在运行的容器+历史上运行过的
    -l :显示最近创建的容器。
    -n:显示最近n个创建的容器。
    -q :静默模式,只显示容器编号。

  • 退出容器:
    方式一:exit:run进去容器,exit退出,容器停止
    方式二:ctrl+p+q:run进去容器,ctrl+p+q退出,容器不停止

  • 启动已停止运行的容器:
    docker start 容器ID或者容器名

  • 重启容器:
    docker restart 容器ID或者容器名

  • 停止容器:
    docker stop 容器ID或者容器名

  • 强制停止容器:
    docker kill 容器ID或容器名

  • 查看所有容器(运行中和已停止):
    docker ps -a

  • 删除已停止的容器:
    docker rm 容器ID

  • 一次性删除多个容器实例:
    docker rm -f $(docker ps -a -q)
    docker ps -a -q | xargs docker rm

  • 设置自动重启:
    #重启策略选项
    –restart=no # 不重启(默认)
    –restart=always # 总是重启
    –restart=on-failure # 失败时重启(可指定最大重试次数)
    –restart=unless-stopped # 除非手动停止,否则总是重启
    #容器启动时设置

    docker run -d --name mysql-master --restart=always -e MYSQL_ROOT_PASSWORD=your_password -p 3306:3306 mysql:8.0

    #为现有容器设置重启策略

    docker update --restart=always mysql-master
    
  • 启动守护式容器(后台服务器):
    docker run -d 容器名
    注意:Docker容器后台运行,就必须有一个前台进程.容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的。最佳的解决方案是,将你要运行的程序以前台进程的形式运行,常见就是命令行模式,表示我还有交互操作。

    redis 前后台启动演示case:
    前台交互式启动:docker run -it redis:6.0.8
    后台守护式启动:docker run -d redis:6.0.8

  • 查看容器日志:
    docker logs 容器ID

  • 实时查看容器日志:
    docker logs -f 容器ID

  • 查看容器内运行的进程:
    docker top 容器ID

  • 查看容器内部细节:
    docker inspect 容器ID

  • 进入正在运行的容器并以命令行交互:
    docker exec -it 容器ID bashShell
    在这里插入图片描述
    重新进入:docker attach 容器ID
    上述两个进入方式区别:
    1)attach 直接进入容器启动命令的终端,不会启动新的进程,用exit退出,会导致容器的停止。
    2)exec 是在容器中打开新的终端,并且可以启动新的进程,用exit退出,不会导致容器的停止。(建议)
    例:进入进入redis服务
    docker exec -it 容器ID /bin/bash
    docker exec -it 容器ID redis-cli
    一般用-d后台启动的程序,再用exec进入对应容器实例

  • 从容器内拷贝文件到主机上:
    docker cp 容器ID:容器内路径 目的主机路径

  • 导入和导出容器:
    export 导出容器的内容留作为一个tar归档文件[对应import命令]
    import 从tar包中的内容创建一个新的文件系统再导入为镜像[对应export]
    例:docker export 容器ID > 文件名.tar
    cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号

http://www.dtcms.com/a/557078.html

相关文章:

  • 珠海网红打卡景点网站排名优化首页
  • 计算机网络Day01
  • QCES项目Windows平台运行指南
  • 多线程编程:条件变量、同步、竞态条件与生产者消费者模型
  • 怎么做高端品牌网站设计潍坊市住房和城乡建设网站
  • 哪个协会要做网站建设啊甘肃做网站哪家专业
  • springcloud : 理解Sentinel 熔断与限流服务稳定性的守护神
  • Webpack Tree Shaking 原理与实践
  • 一文讲透 npm 包版本管理规范
  • Qt 绘画 Widget 详解:从基础到实战
  • 【计算机网络】深入理解网络层:IP地址划分、CIDR与路由机制详解
  • 力扣3281. 范围内整数的最大得分
  • 力扣hot100----15.三数之和(java版)
  • 网站建设最重要的是什么什么是网站的主页
  • 影视传媒网站源码成华区建设局网站
  • 快速搭建网站 开源网络营销推广的目的是什么
  • 超越传统:大型语言模型在文本分类中的突破与代价
  • 【洛谷算题】顺序,分支,循环结构部分题目分享
  • Jmeter吞吐量控制器详解
  • 最全网站源码分享哈尔滨建设发展集团有限责任公司
  • 机器学习-KNN算法示例
  • 【随机访问介质访问控制-1】为什么纯 ALOHA 效率不到 20%?3 大随机访问 MAC 协议拆解
  • 有关电子商务网站建设与维护的书籍具有价值的响应式网站
  • C++笔记(面向对象)定义虚函数规则 运行时多态原理
  • 自然语言处理(NLP)之文本预处理:词元化——以《时间机器》文本数据集为例
  • Java-165 Neo4j 图论详解 欧拉路径与欧拉回路 10 分钟跑通:Python NetworkX 判定实战
  • WindowsRE文件夹不显示
  • 【PID】非标准PID控制是否影响控制目标 chapter1(补充)思考
  • 数码和easy
  • 做网站跟app的区别做网站的要求