Docker 安装与基本使用

image.png

一、简介

  • Docker 官方文档、Docker 中文文档,更新会落后于官方文档

  • 什么是 Docker ?

    Docker 是一个应用打包分发部署的工具,也可以把它理解为一个轻量的虚拟机,它只虚拟软件需要的运行环境,多余的一点都不要,而普通虚拟机则是一个完整而庞大的系统,包含各种不管要不要的软件。

    • 打包:就是把软件运行所需的依赖、第三方库、软件打包到一起,变成一个 安装包
    • 分发:可以把打包好的 安装包 上传到一个镜像仓库,其他人可以非常方便的获取和安装。
    • 部署:拿着 安装包 就可以一个命令运行起来应用,自动模拟出一模一样的运行环境,不管是在 Windows/Mac/Linux
  • 特性对比

    特性普通虚拟机Docker
    跨平台通常只能在桌面级系统运行,例如 Windows/Mac,无法在不带图形界面的服务器上运行支持的系统非常多,各类 windowsLinux 都支持
    性能性能损耗大,内存占用高,因为是把整个完整系统都虚拟出来了性能好,只虚拟软件所需运行环境,最大化减少没用的配置
    自动化需要手动安装所有东西一个命令就可以自动部署好所需环境
    稳定性稳定性不高,不同系统差异大稳定性好,不同系统都一样部署方式

二、安装

  • docker 安装、docker-compose 安装、docker 快速入门,包含 windows 安装等详细步骤

    • 桌面版:https://www.docker.com/products/docker-desktop

    • 服务器版:https://docs.docker.com/engine/install/#server

    • docker 安装成功后,可以使用 $ docker -v 查看是否安装成功。

    • docker-compose 安装成功后,可以使用 $ docker-compose -v 查看是否安装成功。

      注意:

      除了在 Linux 上安装 docker 时,不会自动安装 docker-compose,其他平台(windowmac)都会自动安装好 docker-compose

      安装好 docker 后,可以通过 $ docker-compose -v 检查是否顺带安装好了 docker-compose,没有安装好,可以按官网的方式进行安装。

    • 安装成功后,在桌面版中,只需要启动即可正常使用,就算修改了配置也是重启软件也可以,在服务器版中则需要通过 systemctl 启动或重启:

      # 前面的 sudo 可更具情况进行添加
      # 将 docker 加入开机自启动的列表
      $ sudo systemctl enable docker
      # 启动
      $ sudo systemctl start docker
      # 停止
      $ sudo systemctl stop docker
      # 重启
      $ sudo systemctl restart docker
      # 查看状态
      $ sudo systemctl status docker
      
  • 如果是在 Windows 环境下,还需要配置 WSL 环境:

    • WSL 介绍与使用

    • 开始使用适用于 Linux 的 Windows 子系统 (WSL)

    • 开启 Windows 虚拟化Linux 子系统(WSL2) ,附:docker windows 安装等详细步骤。

      image.png

      image.png

    • Ubuntu(乌班图) 是个基于 Debian 以桌面应用为主的 Linux 操作系统,可在应用上线搜索下载,也可通过命令进行安装。

    • 命令安装(默认安装 ubuntu linux)必须运行 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11 才能使用以下:

      # 安装好 ubuntu 后,并启动,会要求输入账号密码
      $ wsl --install 
      
      # 上面等于下面,默认安装就是 Ubuntu
      $ wsl --install -d Ubuntu
      
      # 输出
      正在安装: Ubuntu  
      已安装 Ubuntu。  
      正在启动 Ubuntu...  
      Installing, this may take a few minutes...
      Please create a default UNIX user account. The username does not need to match your Windows username.  
      For more information visit: <https://aka.ms/wslusers>  
      Enter new UNIX username: xxxx  
      New password:  
      Retype new password:  
      passwd: password updated successfully  
      Installation successful!  
      To run a command as administrator (user "root"), use "sudo <command>".
      ...
      

      安装好后,如何进入 ubuntu?

      1、可在 cmd/PowerShell 中执行 $ ubuntu 命令进入 ubuntu

      2、在系统搜索中,搜索 ubuntu 应用,打开即可。

  • 镜像配置

    • 镜像列表

      镜像归属镜像地址
      Docker 中国官方镜像https://registry.docker-cn.com
      DaoCloud 镜像站http://f1361db2.m.daocloud.io
      Azure 中国镜像https://dockerhub.azk8s.cn
      科大镜像站https://docker.mirrors.ustc.edu.cn
      阿里云https://<your_code>.mirror.aliyuncs.com 需要去注册个账号获取个私有的,这里放个别人的 https://ud6340vz.mirror.aliyuncs.com
      七牛云https://reg-mirror.qiniu.com
      网易云https://hub-mirror.c.163.com
      腾讯云https://mirror.ccs.tencentyun.com
    • 镜像格式

      // 单个
      "registry-mirrors": ["https://registry.docker-cn.com"]
      
      // 可以支持多个
      "registry-mirrors": ["https://registry.docker-cn.com", "https://dockerhub.azk8s.cn", ...]
      
    • 配置镜像:

      # 方法一【使用命令修改配置】
      # 1.运行以下命令来编辑 Docker 配置文件:
      $ sudo vim /etc/docker/daemon.json
      # 2.将以下内容复制到文件中,文件中有对象则去掉 {} 拷贝进去:
      { "registry-mirrors": ["https://registry.docker-cn.com"] }
      # 3. 保存并关闭文件。
      # 4. 重启Docker服务:
      $ sudo systemctl restart docker
      # 5. 完成后,可以通过运行以下命令来验证是否成功:
      $ docker info
      # 6. 注意:如果是从其他镜像源获取镜像,需要将 https://registry.docker-cn.com 替换为相应的镜像源地址。
      
      
      # 方法二:【使用 Docker Desktop 界面修改】
      # 1.在 Docker Desktop 的状态栏上右键单击图标,选择 Settings。
      # 2. 在 Docker Engine 选项卡中,找到 Registry mirrors 并单击 + 按钮。
      # 3. 输入新的镜像源地址。
      "registry-mirrors": ["https://registry.docker-cn.com"]
      # 4. 单击 Apply & restart 保存更改并重启服务。
      # 5. 如果按钮自带重启,则不需要管,没有 restart 则需重启 Docker 服务。
      # 6. 完成后,可以通过运行以下命令来验证是否成功:
      $ docker info
      

      image.png

    • 查看当前镜像

      $ docker info
      

      执行上面命令,查看输出信息中是否有 Registry Mirrors,没有默认就是国外镜像,有就说明有自定义镜像地址:

      ...
      Registry Mirrors:
        https://registry.docker-cn.com/
      

三、使用

  • 常用命令

    # 运行容器
    $ docker run ...
    # 查看当前运行中的容器
    $ docker ps
    # 查看镜像列表
    $ docker images
    # 从仓库中拉取镜像
    $ docker pull
    # 删除指定 id 的容器
    $ docker rm <container-id>
    # 停止/启动指定 id 的容器
    $ docker stop/start <container-id>
    # 删除指定 id 的镜像
    $ docker rmi <image-id>
    # 查看 volume 列表
    $ docker volume ls
    # 查看网络列表
    $ docker network ls
    ......
    
  • Docker 命令指令列表: https://docs.docker.com/engine/reference/commandline/run/

  • Docker 官方镜像仓库:https://hub.docker.com/

    例如:搜索 redis,下载运行。

    $ docker run -d -p 6379:6379 --name redis redis:latest
    
    -d # 表示可后台运行容器(守护式运行)  
    -p # 宿主机端口:docker容器端口,将容器端口映射到宿主机上,通过宿主机访问内部端口
    --name # 给要运行的容器起的名字  
    redis:latest # 指定版本
    -it # 表示与容器进行交互式启动
    /bin/bash # 交互路径
    -v # 将容器内的指定文件夹挂载到宿主机对应位置
    ......
    
  • docker-compose 方式运行

    例如:搜索 wordpress,可以通过 docker-compose.yml 下载运行。

    新建 docker-compose.yml,并将内容拷贝进去保存,然后到该目录下执行安装命令

    $ docker-compose up -d
    

    等待安装完成后,则可以进行访问

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/36855.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C++】list模拟实现

&#x1f680; 作者简介&#xff1a;一名在后端领域学习&#xff0c;并渴望能够学有所成的追梦人。 &#x1f681; 个人主页&#xff1a;不 良 &#x1f525; 系列专栏&#xff1a;&#x1f6f8;C &#x1f6f9;Linux &#x1f4d5; 学习格言&#xff1a;博观而约取&#xff0…

LVS负载均衡集群之LVS-DR部署

目录 一、lVS-DR集群概述 二、LVS-DR数据包流向分析 四、LVS-DR特性 五、DR模式 LVS负载均衡群集部 5.0配置虚拟 IP 地址&#xff08;VIP 192.168.14.180&#xff09; 5.1.配置负载调度器(192.168.14.101) 5.2部署共享存储&#xff08;NFS服务器&#xff1a;192.168.14.10…

6.2Java EE——Spring的入门程序

下面通过一个简单的入门程序演示Spring框架的使用&#xff0c;要求在控制台打印“张三&#xff0c;欢迎来到Spring”&#xff0c;实现步骤具体如下。 1、在IDEA中创建名称为chapter06的Maven项目&#xff0c;然后在pom.xml文件中加载需使用到的Spring四个基础包以及Spring依赖…

etcd的使用

什么是etcd ETCD是一个分布式、可靠的key-value存储的分布式系统&#xff0c;用于存储分布式系统中的关键数据&#xff1b;当然&#xff0c;它不仅仅用于存储&#xff0c;还提供配置共享及服务发现&#xff1b;基于Go语言实现 。 etcd的特点 完全复制&#xff1a;集群中的每…

基于springboot+Redis的前后端分离项目之分布式锁(四)-【黑马点评】

&#x1f381;&#x1f381;资源文件分享 链接&#xff1a;https://pan.baidu.com/s/1189u6u4icQYHg_9_7ovWmA?pwdeh11 提取码&#xff1a;eh11 分布式锁 分布式锁1 、基本原理和实现方式对比2 、Redis分布式锁的实现核心思路3 、实现分布式锁版本一4 、Redis分布式锁误删情况…

Linux进程信号

文章目录&#xff1a; 信号入门从生活角度看信号技术应用角度看信号使用 kill -l 命令查看系统定义的信号列表信号处理常见方式概览 产生信号通过终端按键产生信号核心转储&#xff08;core dump&#xff09;的作用调用系统函数向进程发信号由软件条件产生信号硬件异常产生信号…

0305kali linux配置运行-docker-macos aarm64

文章目录 1 下载运行2 配置2.1 配置系统环境2.2 配置SSH服务2.3 安装工具 3 问题总结结语 1 下载运行 拉取kali linux镜像 docker pull kalilinux/kali-rolling该镜像为“纯净版”系统&#xff0c;没有任何工具&#xff0c;体积小。下面当我们运行起来之后&#xff0c;到容器中…

Android Java代码与JNI交互 JNI访问Java构造方法(九)

🔥 Android Studio 版本 🔥 🔥 创建包含JNI的类 JNIConstructorClass.java 🔥 package com.cmake.ndk1.jni;import com.cmake.ndk1.model.Animal;public class JNIConstructorClass {static {System.loadLibrary("constructor-class-lib");}public native…

Visual studio 2015下载安装以及缺包提示的处理方法

最近要加入的比赛团队需要用到Visual studio 2015&#xff0c;百度后找到很多资源&#xff0c;自己也转到了百度网盘。中英文都有&#xff0c;需要的可以下载。 链接&#xff1a;https://pan.baidu.com/s/12gpVwXfQxfdkXub-IwhWFw?pwds325 提取码&#xff1a;s325 --来自百…

为什么需要多语言并行机器翻译?

随着全球化的加速和不同语言之间的交流需求不断增长&#xff0c;多语言机器翻译&#xff08;Multilingual Parallel Machine Translation&#xff09;成为一个备受关注的领域。传统上&#xff0c;机器翻译系统主要集中于一对特定语言之间的翻译&#xff0c;但这种单一语言对的模…

【观察者模式】 ——每天一点小知识

&#x1f4a7; 观察者模式 \color{#FF1493}{观察者模式} 观察者模式&#x1f4a7; &#x1f337; 仰望天空&#xff0c;妳我亦是行人.✨ &#x1f984; 个人主页——微风撞见云的博客&#x1f390; &#x1f433; 《数据结构与算法》专栏的文章图文并茂&#x1f995;…

uniapp 打包安卓apk (原生App)云打包

uniapp 打包安卓apk (原生App)云打包 hbuilder中操作 项目的一些配置appid DCloud appid 用途/作用/使用说明&#xff1a; https://ask.dcloud.net.cn/article/35907 右键我们项目目录-》发行-》原生APP-云打包 说明&#xff1a; 1. 打包安卓&#xff0c;只选择安卓打包项&…

基于pyqt和卷积网络CNN的中文汉字识别

直接上效果演示图&#xff1a; 通过点击按钮可以实现在画板上写汉字识别和加载图片识别两个功能。 视频演示和demo仓库地址在b站视频001期&#xff1a; 到此一游7758258的个人空间-到此一游7758258个人主页-哔哩哔哩视频 所有代码展示&#xff1a; 十分的简洁&#xff0c;主…

jni编程(windows+JDK11+clion)

JNI是Java Native Interface的缩写&#xff0c;通过使用 Java本地接口书写程序&#xff0c;可以确保代码在不同的平台上方便移植。 一、java代码 package org.example;public class Main {static {System.load("");}public static void main(String[] args) {Syste…

医学图像处理——读取和解读NII文件

一 预备知识 NII文件的存储格式网上有很多资料&#xff0c;在此只做一点简单的描述。nii是一种文件格式&#xff0c;它存储的是在空间中占有一定体积的小方块的物理位置和该位置对应的像素值。这个小方块我们也称之为体素(voxel)。存储的形式是一个三维数组(3D array)&#xf…

ESP32连接云服务器【WebSocket】

ESP32连接云服务器【ESP32宝塔面板】 文章目录 ESP32连接云服务器【ESP32宝塔面板】&#x1f468;‍&#x1f3eb;内容1&#xff1a;背景&#x1f468;‍⚖️内容2&#xff1a;服务器配置&#x1f468;‍&#x1f4bb;内容3&#xff1a;ESP32配置 &#x1f468;‍&#x1f3eb;…

k8s 就绪探针

【k8s 系列】k8s 学习二十&#xff0c;就绪探针 提起探针&#xff0c;不知兄dei 们是否有印象&#xff0c;之前我们分享过存活探针&#xff0c;分享存活探针是如何确保异常容器自动重启来保持应用程序的正常运行&#xff0c;感兴趣的可以查看文章 k8s 系列k8s 学习十七&#x…

windows下使用arp 协议

/ //自动扫描局域网存活主机 本程序是利用arp协议去获取局域网中的存活主机 arp协议概述 地址解析协议&#xff0c;即ARP&#xff08;Address Resolution Protocol&#xff09;&#xff0c;是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请…

音视频——码率、帧率越高越清晰?分辨率、像素、dpi的关系

一 前言 本期我介绍一下视频的一些基础概念&#xff0c;如帧率、码率、分辨率、像素、dpi、视频帧、I帧、P帧、gop等。我i初步学习音视频&#xff0c;给这些专业词汇进行扫盲 会解释多少码率是清晰的&#xff0c;是否帧率越高越流畅等问题。 这些概念是比较杂乱的&#xff0c…

CentOS 7镜像下载 以及 DVD ISO 和 Minimal ISO 等各版本的区别介绍

1.官网下载 官网下载地址&#xff1a;官网下载链接 点击进入下载页面&#xff0c;随便选择一个下载即可&#xff08;不推荐&#xff0c;推荐阿里云下载&#xff0c;见下文&#xff09; 阿里云下载站点&#xff08;速度非常快推荐&#xff09; 阿里云下载链接&#xff1a; http…