从零开始的Docker Desktop使用,Docker快速上手,Docker介绍和基础使用

目录

  • [1 Docker简介和安装和基础配置](#1 Docker简介和安装和基础配置)
    • [1.1 Docker简介](#1.1 Docker简介)
    • [1.2 安装Docker Desktop](#1.2 安装Docker Desktop)
    • [1.3 换源](#1.3 换源)
    • [1.4 Docker基础使用](#1.4 Docker基础使用)
    • [1.5 对Docker操作](#1.5 对Docker操作)
      • [1.5.1 获取当时所有镜像(docker images)](#1.5.1 获取当时所有镜像(docker images))
      • [1.5.2 拉镜像(docker pull)](#1.5.2 拉镜像(docker pull))
      • [1.5.3 删除镜像(docker rmi)](#1.5.3 删除镜像(docker rmi))
      • [1.5.4加载镜像(docker run)](#1.5.4加载镜像(docker run))
    • [1.6 使用交互式容器](#1.6 使用交互式容器)
      • [1.6.1 查看容器(docker ps)](#1.6.1 查看容器(docker ps))
      • [1.6.2 启动和关闭容器](#1.6.2 启动和关闭容器)
    • [1.7 查看Docker状态](#1.7 查看Docker状态)

1 Docker简介和安装和基础配置

1.1 Docker简介

Docker 就像一个盒子,里面可以装很多物件,如果需要某些物件,可以直接将该盒子拿走,而不需要从该盒子中一件一件的取。

Docker中文社区

Docker 包括三个基本概念:

  • 镜像(Image)

    • Docker的镜像概念类似于虚拟机里的镜像(比如.ISO文件),是一个只读的模板,一个独立的文件系统,包括运行容器所需的数据,可以用来创建新的容器。
    • 例如:一个镜像可以包含一个完整的 ubuntu 操作系统环境,里面仅安装了MySQL或用户需要的其它应用程序。
  • 容器(Container)

    • Docker容器是由Docker镜像创建的运行实例,类似VM虚拟机,支持启动,停止,删除等。
    • 每个容器间是相互隔离的,容器中会运行特定的应用,包含特定应用的代码及所需的依赖文件。
    • 容器就类似与虚拟机中我们创建好的虚拟机系统,之后我们所有的操作都是在容器中进行的,我们的程序也是运行在容器中。
  • 仓库(Repository):

    • 镜像便于传播,而仓库就是专门用来传播这些镜像的地方,他有点类似与Github,或者你可以把他看成一个存放各种镜像的镜像商店
    • Docker官方的仓库: 他的服务器处于国外,所以下载速度较慢,不过我们可以通过换源解决。
    • daocloud国内仓库: 国内也有一些优秀的商店,他和Docker官方的仓库的区别类似与Github和Gitee的区别。
    • 网易云镜像中心

本博客主要解决在Windows环境下,快速上手使用Docker的问题,主要会介绍在Windows系统下Docker Desktop的安装,Docker 基础命令,比如说下载镜像、实例化镜像、使用容器、关闭容器、删除容器\镜像、使用仓库、创建镜像等模块的使用。其他系统应该除了安装外其他操作都可以通用。

1.2 安装Docker Desktop

1 我们先去官网下载安装包

2 打开安装包加载一会后一般会弹出两个选项,在较旧的Windows10或之前的系统会出现如下所示的相关提示。我们把第一个选上,第二个根据需求选择即可。



1.3 换源

首先,我们打开Docker的设置

选择Docker Engine,在其中输入(这里使用的是163的源,如果想要使用其他源可以自行设置,github上有个项目:docker_mirror可以自动检测在你的网络环境下那个源是最快的)

1.4 Docker基础使用

  • 首先我们输入docker run hello-world是否会出现下图所示的提示,如果出现报错,这环境配置可能出现了问题。

  • ps:这行命令会让docker从官方仓库中拉去hello-world的镜像到本地,并且自动将其实例化成容器。

1.5 对Docker操作

安装完成Docker后,默认每次开机的时候都会自动启动,但我们也可以手动启动,关闭或者重启Docker

java 复制代码
# 启动docker
sudo service docker start
# 重启docker
sudo service docker restart
# 停止docker
sudo service docker stop

1.5.1 获取当时所有镜像(docker images)

java 复制代码
docker image ls
# 或者
docker images


1.5.2 拉镜像(docker pull)

java 复制代码
# 官方镜像
docker image pull 镜像名称 
# 或简写为 
docker pull 镜像名称
# 比如
docker pull ubuntu
docker pull ubuntu:16.04

# 个人镜像
docker pull 仓库名称/镜像名称
docker pull xunmi/django

# 第三方仓库拉去
docker pull 第三方仓库地址/仓库名称/镜像名称
docker pull hub.c.163.com/library/mysql:latest
(默认仓库名为library,所有从官方获取镜像相当于`sudo docker image pull library/镜像名称`)

1.5.3 删除镜像(docker rmi)

java 复制代码
docker image rm 镜像名或镜像ID 或 docker rmi 镜像名或镜像ID
docker image rm hello-world
docker rmi 9e64176cd8a2

删除镜像的前提是没有使用这个镜像的容器,如果有需要先删除容器(报错:Error response from daemon: conflict: unable to delete 镜像ID (must be forced) - image is being used by stopped container 容器ID则代表有容器使用了此镜像。)可以尝试先执行docker rm 容器ID删除容器,如果还报错,可以看我下方删除容器的具体方法。

几条删除命令的区别

java 复制代码
docker rm: 删除一个或多个 容器
docker rmi: 删除一个或多个 镜像
docker prune: 用来删除不再使用的 docker 对象

1.5.4加载镜像(docker run)

上面我们说过,镜像只是一个只读类型的文件,而我们的环境不可能只是一个这样的文件,所以我们需要把这个镜像加载成我们的环境,也就是让他变成容器。

复制代码
docker run [可选参数] 镜像名 [向启动容器中传入的命令]
java 复制代码
可以启动一个系统docker run -i -d -t --name=kali-test kalilinux/kali-rolling
(这里我使用linux的一个发行版kali作为介绍)

或可以简写为docker run -idt --name=kali-test kalilinux/kali-rolling

PS: 如果加载一个我们没有的镜像,docker会自动从官方仓库中进行拉去。

1.6 使用交互式容器

上面我们成功将镜像变成了容器,但上述的命令中我们都加入了-d,让容器在后台运行了。下面我们就来讲如何和正在运行的容器进行交互。

1.6.1 查看容器(docker ps)

查看容器主要会用到ps命令

java 复制代码
# 查看当前所有正在运行的容器
docker ps
# 查看当前所有的容器
docker ps -a
# 使用过滤器(除了name外,常用的还可以指定id:id= 、所有停止的容器:status=exited,正在运行的容器:status=running 等)
docker ps -f name=指定的名字
# 显示2个上次创建的容器(2可以改变)
docker ps -n 2
# 显示最新创建的容器(包括所有状态)
docker ps -l
# 仅显示ip
docker ps -q
 # 显示容器大小
docker ps -s


1.6.2 启动和关闭容器

java 复制代码
# 停止容器
docker container stop 容器名或容器id
# 或可简写为
docker stop 容器名或容器id

# 强制关闭容器
docker container kill 容器名或容器id
# 或可简写为
docker kill 容器名或容器id

# 启动容器
docker container start 容器名或容器id
# 或可简写为
docker start 容器名或容器id
java 复制代码
如果我们成功启动或者关闭一个容器的话,会返回容器名或者容器id
stop和kill的区别: stop是比较优雅的关掉一个容器,类似我们正常退出一个软件,而kill是当一个进程出现意外无法正常关闭的时候,我们强行进行关闭,有点像我们使用任务管理器进行结束进程操作

1.7 查看Docker状态

python 复制代码
docker info
相关推荐
用户03284722207015 小时前
如何搭建本地yum源(上)
运维
武子康16 小时前
调查研究-183 Apple container:Mac 上用轻量 VM 跑 Linux 容器,Swift 会改写本地容器体验吗?
docker·容器·apple
大树884 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠4 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质4 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工4 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
Alsn864 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
酣大智4 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_4 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉4 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造