记录 windows 中 docker 的基本使用方式

前言

新手小白刚接触docker在此对docker的基本使用做个记录,便于回顾。

个人对于docker的理解

docker是微服务普遍的一个产物,docker几乎在所有系统平台上都可以使用,真正做到了一次部署到处运行。只需将打包好的镜像上传后再其他平台下载运行即可。

基本使用

下载地址
docs.docker.com/docker-for-…

1、启动docker

2、设置国内镜像地址

右击docker任务栏图标 > settings > Daemon > Registry mirrors
增加 xxxxxxx.mirror.aliyuncs.com; ps:阿里云申请的容器镜像加速私人地址

3、测试docker

运行cmd > docker run hello-world; 出现如下界面表明可正常使用

4、基于docker 安装tomcat:8

cmd > docker pull tomcat:8;
语法 > docker pull repository:tag

5、查看已下载镜像

cmd > docker images

6、测试tomcat 启动

cmd > docker run -p 8080:8080 tomcat:8

启动tomcat 并将8080端口映射至宿主机的8080 端口

常用参数:

-d: 后台运行容器,并返回容器ID;

-i: 以交互模式运行容器,通常与 -t 同时使用;

-p: 端口映射,格式为:主机(宿主)端口:容器端口

-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

--name="nginx-lb": 为容器指定一个名称;

-h "mars": 指定容器的hostname;

-e username="ritchie": 设置环境变量;

-m :设置容器使用内存最大值;

--net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;

--link=[]: 添加链接到另一个容器;

--expose=[]: 开放一个端口或一组端口;

结果:

进入容器内 到 tomcat > webapp 下查看所有文件

cmd > docker exec -it CONTAINER ID bash

7、查看已运行的容器

cmd > docker ps

8、查看所有状态容器

cmd > docker ps -a

9、关闭容器

cmd > docker stop CONTAINER ID

10、删除容器

cmd > docker rm CONTAINER ID

11、删除镜像

cmd > docker rmi hello-world;
dockker rmi repository:tag

使用DockerFile定制镜像

完成目标:

使用docker构建一个镜像运行一个jar包,jar包内容是一个spring boot项目

1、开始构建DockerFile

FROM openjdk:8-jdk-alpine
COPY test2.jar app.jar
CMD java -jar app.jar
复制代码

文件夹内容如下

FROM:该镜像的依赖环境

COPY:将DockerFile文件目录下的 test2.jar 文件拷贝至镜像内的工作目录下并命名为 app.jar

CMD:容器启动时运行命令

2、构建镜像

cmd 目录切换至docker文件夹目录下

cmd > docker build -t 镜像名称:镜像标签 .

特别注意 docker build -t 镜像名称:镜像标签 . 后面有一个点

. 代表上下文路径本案例路径为F:\docker

docker 是分为客户端与服务端,docker build过程中docker 客户端将会把上下文路径(F:\docker)的所有文件打包上传至服务端来运行。

3、查看所构建的镜像并运行

cmd > docker images

cmd > docker run -p 8083:8087 test:2

ps: test2.jar 中的端口配置的是8087所以 -p映射端口是将容器中的 8087 端口映射至宿主机的 8083 端口中

docker数据卷

1、为什么使用数据卷

当docker删除容器时或删除镜像时一些数据不希望丢失而这些数据可以挂载在宿主机上,当容器或镜像被删除时数据不会丢失。这些数据还能再多个容器中互相共享。

2、完成目标

构建mysql容器创建数据库后将容器删除后再次创建容器数据库不丢失

3、开始

1、查看mysql容器中的文件结构

cmd > docker run -it -e MYSQL_ROOT_PASSWORD=root mysql:5.7.22 bash

mysql数据文件路径 /var/lib/mysql

2、exit退出容器,新建容器将F://docker/mysql/data 作为数据卷映射至 /var/lib/mysql

cmd > docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root --name mysql -v F://docker/mysql/data:/var/lib/mysql mysql:5.7.22

3、测试连接并新增数据库

4、删除容器

5、创建新容器不指定数据卷

cmd > docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root --name mysql mysql:5.7.22

数据库消失

6、创建新容器指定数据卷

cmd > docker run -p 3406:3306 -e MYSQL_ROOT_PASSWORD=root --name mysql1 -v F://docker/mysql/data:/var/lib/mysql mysql:5.7.22

数据恢复

完结撒花

ps:本篇参考

千峰教育菜鸟教程

转载于:https://juejin.im/post/5cdb78db6fb9a032374f7079

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值