Docker学习笔记
前段时间使用FastAPI模板生成器 https://github.com/tiangolo/full-stack-fastapi-postgresql ,生成项目时,项目是用docker启动的,无奈我自己还不会Docker,项目都启动不起来,真滴难受。
尽管后面自己仿照Flask,跟着官方文档稍微写了下 https://github.com/CoderCharm/MallAPI 感觉目录组织还行,但是docker想想还是得会,毕竟是主流技术了。
说了这么多,我自己也要赶紧学起来,每天下班后,坚持学下docker, 记录下笔记。
Docker简介
我认为学一个东西或者技能,就要从以下这三个最基本的方面学。
- 是什么?
- 本质是什么?和同类产品比有哪些优势?为什么选择学这个不学那个?
- 怎么用?
- 基本操作使用? 那个场景适合用?如何和业务搭配优化?如何监控调度?
- 注意事项?
- 有哪些坑要踩?稳定性,安全性如何? 莫名其妙的Bug? 有问题怎么解决?
这三点自己google一下,很多概念性的东西,我不喜欢别人又使用另一种概念解释,说大白话会让人就好理解多了。
概念看下图示,还是很清楚的,最常见的还有docker和虚拟机的区别。
还有一点就是学习网络技术,看官方文档,是最权威的,最直接的,很多二手资料,并不一定全对,或者跟新不及时,当然我的个人博客也是如此。
- Docker入门 https://docs.docker.com/get-started/
- why-docker https://www.docker.com/why-docker
- what-docker https://opensource.com/resources/what-docker
Docker安装
我也是按照官网走,所以我的博客,贴了很多官网的链接。唯一区别就是我自己实验过。
官网 https://docs.docker.com/get-docker/
Centos7 下安装
选择Linux发行版本 https://docs.docker.com/engine/install/
Centos https://docs.docker.com/engine/install/centos/
安装注意事项:
- 系统版本必须的是Centos7+稳定版 Archived和Tested版本不支持。
- centos-extras必须开启(我理解是必须要使用yum 仓库之类的安装)
1 先卸载docker 防止之前安装失败的
$ sudo yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine
2 使用仓库安装
$ sudo yum install -y yum-utils
# 默认是设置国外的镜像仓库,不推荐
$ sudo yum-config-manager
--add-repo
https://download.docker.com/linux/centos/docker-ce.repo
#推荐使用国内的
$ sudo yum-config-manager
--add-repo
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 更新 yum缓存
yum makecache fast
3 安装docker engine
# 默认是安装最新版的。docker-ce 社区版 ee是企业版
$ sudo yum install docker-ce docker-ce-cli containerd.io
# 安装完之后就可以查看版本
$ docker version
4 启动docker
$ sudo systemctl start docker
5 Hello World测试
$ sudo docker run hello-world
输出以下内容就表示安装成功了。
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
0e03bdcc26d7: Pull complete
Digest: sha256:d58e752213a51785838f9eed2b7a498ffa1cb3aa7f946dda11af39286c3db9a9
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
hello-world演示包含了很多东西,一开始启动镜像,本地没有找到这个叫hello-world
的镜像,就去docke hub公共仓库去找,找到后拉取最后的一个版本,然后启动。
上面例子引入了镜像image(不要翻译成图片)的概念,后面还有容器container,这是docker最重要的两个概念了。
卸载docker
#1. 卸载依赖
yum remove docker-ce docker-ce-cli containerd.io
#2. 删除资源
rm -rf /var/lib/docker
# /var/lib/docker 是docker的默认工作路径!
Windows10下安装
win10桌面版安装(个人操作安装失败,以下为失败经验)
windows的话,我选择安装桌面版。
打开文档首先就是 What to know before you install。 安装前置条件
- Windows 10 64位:专业版,企业版或教育版(内部版本16299或更高版本)。
- 对于Windows 10 Home,请参阅在Windows Home上安装Docker Desktop。
- 64位处理器
- 4g+内存
- BIOS打开虚拟化技术(没想到以前装系统的知识,还能给我一点帮助,BIOS自行百度是啥)
win10 docker 桌面端下载链接 https://download.docker.com/win/stable/Docker Desktop Installer.exe
我的是win10 家庭版的,我的windows貌似安装失败了。还是建议自己电脑安装一个虚拟机操作。
傻瓜式操作,双击就行,下一步下一步。
https://docs.docker.com/docker-for-windows/install-windows-home/
win10 Docker Toolbox
https://docs.docker.com/toolbox/toolbox_install_windows/
这个是 Docker Desktop for Windows 装不上的替代方案。
去github 下载最新的Docker Toolbox.exe执行文件 https://github.com/docker/toolbox/releases
下载慢可以去镜像网站下 自行搜索
还是启动不了,不倒腾了,反正也是用Linux系统开发。
下一步
下一步就要学习下基本的操作了
镜像命令 和 容器命令,这些命令很多都是基于Linux命令的,如果有Linux命令基础的话,我想还是很好理解的。
明天学习再记录!