参考文献:https://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html

https://www.ruanyifeng.com/blog/2018/02/docker-wordpress-tutorial.html

我目前使用的机器是MacOS

一、基本信息

1、概念

docker是一个虚拟容器,可以让程序在其中运行,与原系统隔绝。

2、docker安装

        docker的运行依赖于docker engine,这个engine需要安装获取,在非linux系统上Docker Desktop 提供了一个「带 Linux 虚拟机 + Engine + GUI」的完整打包,而在linux上,可以直接安装 docker-ce(无图形界面),因为 Linux 本身就是 Docker Engine 所需的内核环境;

        安装好后,直接使用图形化界面(GUI)或者命令行语句(CLI)即可运行docker,对应的docker指令应该是一致的。

安装链接,选择适合你的电脑的docker:

https://docs.docker.com/desktop/setup/install/mac-install/

        推荐选择第一个。这个模式下Docker 会自动配置:虚拟化后端(例如使用 Apple Virtualization Framework 或 Hyper-V),文件共享路径(/Users、/Volumes、/tmp 等),网络与代理和资源限制(CPU、内存)默认合理值等。安装过程会要求输入管理员密码以便修改系统网络或虚拟化权限。适合大多数开发者,尤其是刚开始使用 Docker 的用户。

  • 第二个选择则需要你手动配置上述内容,不太适合新手。

好的,按照上述方法就可以完成安装,docker再无其余安装步骤,很便捷,下面注册ID即可进入。

3、开启docker服务器
如果是Linux系统,可以通过CLI指令开启(这里我使用了参考文献的内容):

验证是否安装成功:docker version 或者 docker info

Docker 需要用户具有 sudo 权限。为了避免每次命令都输入 sudo,可以把用户加入 Docker 用户。j具体操作参考官方文档:https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user

Docker 是服务器-客户端架构。命令行运行 docker 命令的时候,需要本机有 Docker 服务。

如果这项服务没有启动,可以用下面的命令启动。

# service 命令的用法
$ sudo service docker start

# systemctl 命令的用法
$ sudo systemctl start docker

MacOS系统:

需要打开刚才安装的docker的软件,就默认开启了这个服务,如果需要restart,可以直接在GUI交互

二、入门学习

1、Image(镜像)

        它是一个只读的模板,里面包含了运行某个容器所需的一切内容(操作系统、依赖库、应用代码、环境变量、启动命令等),容器就是从镜像“复制并运行”出来的。

        它不在运行,只是静态存储,当运行 docker run ubuntu指令时,Docker 就会:从仓库拉取 ubuntu 镜像;基于这个镜像创建一个可写层(容器层);启动成为一个容器(container)。

        镜像的来源一般分三种(后两种我还没验证,先存下):

来源

示例命令

说明

官方镜像

docker pull ubuntu

来自 Docker Hub 官方认证

自定义构建

docker build -t myapp .

用 Dockerfile 构建

导入归档

docker load -i image.tar

从 .tar 镜像文件导入

        常见docker命令:

操作

命令

说明

查看本地镜像

docker images

列出本地已有的镜像。也可用 docker image ls。  

拉取镜像

docker pull <name>

从镜像仓库(例如 Docker Hub)下载镜像至本地。可指定标签或平台。  

删除镜像

docker rmi <image>

删除本地镜像。也可使用 docker image rm。  

构建镜像

docker build -t <name> 

从当前目录的 Dockerfile 构建镜像,并用 -t 给镜像打标签。  

保存镜像为文件

docker save -o image.tar <name>

将本地镜像打包为一个 .tar 文件,方便导出或传输。  

从文件加载镜像

docker load -i image.tar

从 .tar 文件中加载镜像到本地镜像仓库。  

2、docker换源

由于docker的本身的源连接在国内总是容易断,所以我们更换为镜像。

有GUI的用户:在配置文件中添加{
  "registry-mirrors": [
    "https://registry.docker-cn.com",
    "https://mirror.ccs.tencentyun.com",
    "https://docker.mirrors.ustc.edu.cn"
  ],
  "features": {
    "buildkit": true
  }
}

然后点击apply and restart即可

Linux用户:

打开/etc/default/docker文件(需要sudo权限),在文件的底部加上:

DOCKER_OPTS="--registry-mirror=https://registry.docker-cn.com"

之后重启,即可从镜像下载:

sudo service docker restart

三、hello-world 容器实战

image操作

1️⃣拉取镜像:docker image pull hello-world

2️⃣ 查看本地镜像:docker image ls

容器操作

1️⃣ 运行容器:docker container run hello-world(若本地无该镜像,会自动从仓库拉取再运行)

成功输出“Hello from Docker”,代表运行成功。

hello-world 容器为一次性容器:输出完成后自动退出

2️⃣运行长期容器(以ubuntu为例)

docker container run -it ubuntu bash

-i:保持标准输入;-t:分配终端;bash:进入容器内的命令行。

此时进入ubuntu环境,可执行以下一些操作等:

ls

cat /etc/os-release

exit   # 退出容器

3️⃣ 容器(Container)操作命令(并未一一实践)

查看:

操作

命令

说明

查看正在运行的容器

docker container ls

只显示活动容器

查看所有容器(含已停止)

docker container ls --all

显示历史容器记录

停止:

docker container kill [containerID]:containerID 可通过 docker container ls 获取;

删除:

docker container rm [containerID]

docker container prune:删除全部已停止容器

更多推荐