Docker学习快速入门

我们以使用Docker的方式安装MySQL为例,快速体会Docker的基本操作

1、镜像操作

1、下载镜像 docker pull mysql

#我们应该先去Docker Hub寻找我们感兴趣的镜像
docker pull image_name[:Tag]
#1、tag一般为镜像的版本,不指定默认下载latest版本
#2、默认镜像是从Docker Hub下载,国内比较慢,推荐使用自己的阿里云加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

在这里插入图片描述

  • 以上下载过程看出,镜像是分层的(Layer)。c499e6d256d6是当前层的唯一id(完整的id为256bit,64个十六进制字符组成)。
  • 不同的镜像如果有相同的层,本地只会存储一份,减小了存储空间
  • 严格说,下载镜像需要制定指定仓库名称,不过从Docker Hub下载的可以忽略前缀。如
  - docker pull **docker.io/library/**mysql:5.7

2、列出镜像 docker images

docker images

在这里插入图片描述
REPOSITORY:来源于哪个仓库

TAG:镜像版本标签信息

IMAGE ID :镜像唯一id

CREATED:镜像最后更新时间

SIZE:镜像大小

3、查看详情 docker inspect

docker inspect image_name[:tag]
docker inspect image_id  

4、删除镜像 docker rmi

docker rmi image_name[:tag] 或者 docker rmi image_id

5、理解镜像

1、疑问一:

Docker每一个容器都是一个完整的这个应用的运行环境。所有应用最起码的基本环境是linux

SB微服务做成镜像。基本环境就是java环境,

如果我下载了100个镜像,启动了100个容器。100个linux在运行?

UFS:特点;git。增量记录文件改变。分层系统。需要经常读写变化的,只在变化层。

2、容器操作

1、启动容器

#docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 常用选项
-d  守护态运行
-p  Publish a container's port(s) to the host ( container和host端口映射)
-i  以交互模式运行容器,通常与 -t 同时使用
-t  为容器重新分配一个伪输入终端,通常与 -i 同时使用
--name="nginx-lb"  为容器指定一个名称
-v, --volume value  Bind mount a volume (default [])
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --name hello-mysql mysql:5.7

#查看所有运行中的容器
docker ps 
#查看所有容器
docker ps -a
#docker create 和 docker run的区别
docker create -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --name hello-mysql mysql:5.7
#create新建容器,run新建并启动。create相当于 run -d设置

2、进入容器

#docker exec  [OPTIONS] CONTAINER COMMAND [ARG...]
#Run a command in a running container
docker exec -it hello-mysql /bin/bash	
#尝试连接MySQL
mysql -uroot -p123456
#扩展
docker exec -d hello-mysql touch /hello.txt
docker exec -it hello-mysql mysql -uroot -p

#删除
docker rm container_id/container_name
#查看运行日志
docker logs container_id/container_name

3、其他命令
Docker 命令手册

5、可视化
Portainer(先用这个)

docker run -d -p 8088:9000 \
--restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer

Rancher(CI/CD再用这个)

#安装rancher-server
docker run --name rancher-server -p 8000:8080 -v /etc/localtime:/etc/localtime:ro  -d  rancher/server
#安装agent
docker run --rm --privileged -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/rancher:/var/lib/rancher rancher/agent:v1.2.11 http://39.101.191.131:8000/v1/scripts/D3DBD43F263109BB881F:1577750400000:7M0yBzCw4XSxJklD7TpysYIpI
<think>嗯,用户现在明确要寻找适合初学者的Docker快速入门网站,而且特别强调"新手"和"快速学习"。结合之前的对话历史,用户刚学完K8S,现在回头补Docker基础也很合理——毕竟Kubernetes依赖容器技术。 翻看用户提供的引用材料,发现几个关键点:引用[1]推荐了GitBook上的《Docker入门到实践》,这个确实经典;引用[2]提到官网和阿里云平台;引用[4]虽然内容较杂但提到"快速搭建环境"的需求;引用[5]则整理了实用命令。用户显然需要把碎片信息整合成系统学习路径。 用户可能遇到的实际痛点是:官网英文文档有门槛,中文资料质量参差,需要能立即动手的教程。所以推荐方案要满足:中文优先、零基础友好、带实时练习环境。突然想到之前回复K8S时推荐过B站视频,但这次用户明确要"网站",所以重点放在文档类资源。 比较几个候选资源: - GitBook教程(引用[1]):中文版且持续更新,优势是每章都有"动手实验"环节,比如在线运行`docker run hello-world`。但需要用户本地装好Docker环境。 - Docker官网(引用[2]):Getting Started教程有分步指引,但英文为主。中文官网教程较简略,适合当命令速查。 - Play with Docker(引用[2]补充):这个云环境对新手太友好了,不用安装就能直接操作,应该放在首位推荐。 - 阿里云(引用[2]):其实有完整的镜像加速和私有仓库教程,但更适合国内用户,作为备选。 用户引用[4]提到"docker日志配置"、"私有仓库"等进阶内容,但当前问题聚焦入门,这些留到后续学习更合适。最后决定按"零安装→基础概念→实战"的逻辑推荐三个核心资源,特别突出Play with Docker的免安装优势——毕竟用户刚接触时最怕环境配置失败。 要不要补充学习路径呢?看到用户引用[5]整理了常用命令,但作为独立章节容易脱节。所以把命令表整合到"实战"阶段,配合GitBook的"容器化一个Python应用"案例,这样命令学习就有上下文了。最后用问题引导进阶方向,呼应之前K8S学习的模式。</think>以下是专为 Docker 新手设计的 **快速入门学习网站推荐**,结合易用性、中文支持和实践性精选,助你高效上手: --- ### ⚡ 一、零基础首选:免安装直接实践 1. **Play with Docker(PWD)** - **链接**:[https://labs.play-with-docker.com/](https://labs.play-with-docker.com/) - **优势**: - 无需本地安装,浏览器中直接操作 Docker 环境 - 分步交互式教程(如运行第一个容器、构建镜像) - 免费临时虚拟机,适合快速体验 - **适合场景**:零基础小白首次接触 Docker 命令[^2] --- ### 📚 二、系统化中文教程(免费) 1. **《Docker — 从入门到实践》** - **链接**:[https://yeasy.gitbooks.io/docker_practice/content/](https://yeasy.gitbooks.io/docker_practice/content/) - **亮点**: - 中文社区最受欢迎的 Docker 开源书,GitHub 星标超 30k - 从安装、镜像、容器到网络/存储全覆盖 - 每章附命令示例(如 `docker run -d nginx`)[^1] - **学习路径**: ```mermaid graph LR A[基础概念] --> B[镜像管理] B --> C[容器操作] C --> D[数据持久化] D --> E[网络配置] ``` 2. **Docker 官方中文教程** - **链接**:[https://docs.docker-cn.com/get-started/](https://docs.docker-cn.com/get-started/) - **特点**: - 官方标准教材,结构清晰 - 含视频教程 + 多语言代码示例(Python/Node.js) - 重点章节:容器化应用、Compose 编排[^2] --- ### 🛠️ 三、实战辅助工具 1. **Docker 命令速查表** - **链接**:[https://dockerlabs.collabnix.com/docker/cheatsheet/](https://dockerlabs.collabnix.com/docker/cheatsheet/) - **核心命令示例**: | 命令 | 作用 | |---|---| | `docker pull nginx` | 拉取镜像 | | `docker run -d -p 80:80 nginx` | 启动容器并映射端口 | | `docker exec -it <容器ID> bash` | 进入容器终端 | | `docker build -t myapp .` | 构建自定义镜像[^5] | 2. **在线实验场** - **Katacoda Docker 场景**:[https://www.katacoda.com/courses/docker](https://www.katacoda.com/courses/docker) - 浏览器中完成镜像构建、Compose 编排等实验 - 无需配置环境,实时反馈结果 --- ### 🔍 四、避坑指南(新手必看) 1. **常见问题解决**: - **镜像拉取慢**:配置国内镜像源(阿里云/中科大) ```bash # 编辑 /etc/docker/daemon.json { "registry-mirrors": ["https://<你的ID>.mirror.aliyuncs.com"] } ``` - **权限问题**:将用户加入 docker 组 ```bash sudo usermod -aG docker $USER ``` - **删除所有容器**:`docker rm -f $(docker ps -aq)`[^5] 2. **进阶技巧**: - 使用 `.dockerignore` 加速镜像构建 - 多阶段构建减小镜像体积(见 GitBook 教程第 3 章)[^1] --- ### ✅ 学习路径建议 ```mermaid graph TD A[Day1] -->|Play with Docker| B[运行第一个容器] A -->|GitBook 第1-2章| C[理解镜像/容器概念] B --> D[修改容器并提交为新镜像] D --> E[Day2:学习Dockerfile] E --> F[构建自定义镜像] F --> G[Day3:使用Compose部署多容器应用] ``` --- > 附:**资源引用来源** > [^1]: 《Docker — 从入门到实践》中文开源书 > [^2]: Docker 中国官网教程 > [^5]: Docker 常用命令总结 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值