从零开始的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
相关推荐
gopher9511几秒前
linux驱动开发-中断子系统
linux·运维·驱动开发
汀、人工智能33 分钟前
修改Docker默认存储路径,解决系统盘占用90%+问题(修改docker root dir)
docker·容器
吃面不喝汤661 小时前
如何配置和使用自己的私有 Docker Registry
运维·docker·容器
Rookie_explorers1 小时前
Linux下go环境安装、环境配置并执行第一个go程序
linux·运维·golang
学习向前冲1 小时前
AD域控服务器
运维·服务器
Leighteen1 小时前
Docker常用命令
docker·容器
hgdlip1 小时前
查看ip地址的方法有几种?探索多样方法
运维·服务器·ip地址
丶21362 小时前
【Nginx】在 Docker 上安装 Nginx 的详细指南
运维·nginx·docker
codelife3212 小时前
在Docker容器中执行命令
容器
神即道 道法自然 如来2 小时前
Jenkins怎么设置每日自动执行构建任务?
运维·jenkins