Docker入门学习(一)
参考文献: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:删除全部已停止容器

更多推荐
所有评论(0)