本文来自于up主:技术爬爬虾 的视频总结。
Docker是基于Linux的容器化技术,用于存放分享镜像。
一、Docker安装
Linux安装指令(get.docker.com):

以Windows10 电脑为例,安装Docker:
1.打开控制面板

2.点击程序

3.点击启用或关闭Windows功能

4.勾选"适用于Linux的Windows子系统(WSL)"和"虚拟机平台(Virtual Machine Platfrom)",确定并等待加载完毕。

5.OK了,重启这该死的电脑!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
6.以管理员身份运行命令提示符

可以不加--web-download,Ctrl+c可以终止

7.进入Docker: Accelerated Container Application Development下载Docker,Win是AMD64。
指定安装目录:在下载安装包的文件夹,进入cmd,dir后写上安装目录
start /w "" "Docker Desktop Installer.exe" install -accept-license --installation-dir="E:\Docker\Docker"

ok,安装好了

二、设置国内镜像源
打开docker,设置->docker engine->在flase后加上"," 并输入:
XML
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.1panel.live",
"https://hub.rat.dev"
]
点击应用。

测试一波:
1.下载一个nginx镜像
XML
docker pull nginx
docker pull --platform=xxxx nginx (这条指令用来指定架构)

2.查找下载的镜像
XML
docker images

3.删除镜像
XML
docker rmi NAME/ID

三、运行容器
1.创建一个仓库
XML
docker run (-d) nginx (-d是后台分离模式不会影响当前窗口使用)
(如果nginx镜像不存在,则会自动执行pull操作下载一个)

2.查看运行的仓库

3.端口映射
用于宿主机链接Docker容器内网络部署的端口
XML
docker run -p 80:80 nginx


四、挂载卷
用于将docker内的文件挂在到宿主机上,永久保存
docker run -d -p 80:80 -v D:\Code\Full_Stack:/usr/share/nginx/html nginx
-v 宿主机目录:容器内目录(绑定挂载)

docker rm -f f6bb8aeb5a4c (rm删除容器,-f强制删除)
docker ps -a (查看所有容器)

docker volume create nginx_html(创建一个挂在卷)

docker volume inspect nginx_html(查看挂在卷所在目录)

然而这个指令只能显示linux下的路径,window真实路径如下:
\\wsl.localhost\docker-desktop\mnt\docker-desktop-disk\data\docker\volumes\nginx_html

docker volume list(查看挂载卷)
docker volume rm nginx_html(删除挂载卷)
docker volume prune -a(删除没有绑定仓库的所有挂载卷)

五、run其他参数
sudo docker run -d \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=shrimp \
-e MYSQL_DATABASE=tech_db \
-e MYSQL_USER=tech \
-e MYSQL_PASSWORD=shrimp \
mysql:8.0
这是MYSQL的链接方式,创建了root用户和普通用户。
docker run -d --name 自定义名字 nginx
(自定义名字在宿主机上是唯一的)
docker run -it --rm 容器
(-it让控制台进入容器,--rm容器停止时,删除容器)
docker run -d -restart always 容器
(用来配置容器在停止时的重启策略,always替换为unless-stopped,手动关闭的容器不会重启)
六、调试容器
docker start 容器ID/名字
docker stop 容器ID/名字
(容器启停)
docker inspect ID/名字
(查看容器信息)
docker create -p 端口:端口 容器
(与run类似,但是只创建不启动)
docker logs 容器ID/名字 (-f)
(查看容器日志,-f追踪输出日志)
docker exec ID/名字 linux指令
(执行linux命令,一个容器相当于一个linux)
docker exec -it ID/名字 /bin/sh
(进入一个运行的容器内部,可以运行指令,但是docker里的容器是最轻量的,需要自己下载工具)
cat /etc/os-release(查看容器发行版)