docker初学
2024-06-06
安装
安装教程: https://docker.easydoc.net/
官网 选择 windows 桌面版,下载进行安装
弹出如下提示
点击提示中的网址,然后下载 linux 内核进行安装。
安装成功之后打开
设置镜像源(不用设置也行)
配置一个新的镜像源,"registy-mirrors":["https://registry.docker-cn.com"],
| 镜像加速器 | 镜像加速器地址 |
|---|---|
| Docker 中国官方镜像 | https://registry.docker-cn.com/ |
| DaoCloud 镜像站 | http://f1361db2.m.daocloud.io/ |
| Azure 中国镜像 | https://dockerhub.azk8s.cn/ |
| 科大镜像站 | https://docker.mirrors.ustc.edu.cn/ |
| 阿里云 | https://<your_code>.mirror.aliyuncs.com |
| 七牛云 | https://reg-mirror.qiniu.com/ |
| 网易云 | https://hub-mirror.c.163.com/ |
| 腾讯云 | https://mirror.ccs.tencentyun.com/ |
{
"registy-mirrors":["https://registry.docker-cn.com"],
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"features": {
"buildkit": true
}
}
安装软件
eg:安装 redis
-
在左上角搜索
redis -
找到一件安装的命令
docker run -d -p 6379:6379 --name redis redis:latest -
打开
powershell,粘贴进去进行安装 -
打开桌面版程序,可以看到已经安装成功的
redis -
点击
run 之后,可以看到运行的情况
eg2:安装 wordpres
-
搜索
wordpress, https://hub.docker.com/_/wordpress -
找到这个文件
-
复制这个 yml 内容,然后在桌面新建一个 yml 文件
docker-compose.yml,将以上的内容复制进去 -
在资源管理器中打开这个 yml 文件的目录,在上面输入
powershell,打开 powershell 窗口 -
输入 yml 文件的文件名,不带后缀
docker-compose up -d -
打开 docker 桌面版,就可以看到刚才安装的镜像
-
浏览器打开 http://localhost:8080/ ,可以看到已经安装成功了
制作自己的镜像
-
clone 这个项目 https://github.com/gzyunke/test-docker.git
-
编辑配置文件
FROM node:11 MAINTAINER easydoc.net # 复制代码ADD . /app # 设置容器启动后的默认运行目录WORKDIR /app # 运行命令,安装依赖# RUN 命令可以有多个,但是可以用 && 连接多个命令来减少层级。# 例如 RUN npm install && cd /app && mkdir logsRUN npm install --registry=https://registry.npm.taobao.org # CMD 指令只能一个,是容器启动后执行的命令,算是程序的入口。# 如果还需要运行其他命令可以用 && 连接,也可以写成一个shell脚本去执行。# 例如 CMD cd /app && ./start.shCMD node app.js -
在资源管理器中,打开这个项目的目录,地址栏输入
powershell,回车 -
输入
docker build -t test:v1 . 点是当前目录的意思,开始创建镜像 -
运行
docker run -p 8080:8080 --name test-hello test:v1,用不了就换成 9090 端口,因为前面已经用过 8080 了docker run -p 9090:8080 --name test-hello test:v1 -
如果还是不行,就需要删除掉刚才重名的容器,然后重新运行刚才的命令
docker run -p 9090:8080 --name test-hello test:v1 -
访问一下 localhost: 9090,查看是否运行成功
目录挂载
挂载方式
一共三种挂载方式
-
bind mount 直接把宿主机目录(物理主机的目录)映射到容器内,适合挂代码目录和配置文件 -
volume 由容器创建和管理,创建在宿主机,所以删除容器不会丢失,官方推荐,更高效,Linux 文件系统,适合存储数据库数据。可挂到多个容器上 -
tmpfs mount 适合存储临时文件,存宿主机内存中。不可多容器共享。
eg
-
使用命令进行挂载,挂载到项目的目录下
docker run -p 9090:8080 --name test-hello -v C:\Users\tianzhongs\Desktop\test-docker -d test:v1 -
可以看到已经挂载成功了