uniapp开发app框架在提升开发效率中的独特优势与应用探索
784
2022-11-17
Docker 入坑记
docker 入坑记
0、介绍
软件开发最大的麻烦事之一是环境配置。软件执行需要操作系统设置及各种库和组件的安装。
虚拟机是解决方案之一,但资源占用多、冗余步骤多、启动慢。
Linux 容器则有启动快、资源占用小、体积小等优点。
Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。是目前最流行的 Linux 容器解决方案。
Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。
总体来说,Docker 的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。
1、安装
2、使用
2.1、查询docker信息
$ docker version# 或者$ docker info
2.2、 image 文件(镜像)
Docker 把应用程序及其依赖,打包在 image 文件里面。
image 文件是容器模板,同一image文件可生成多个容器实例。
image 文件是通用的,可拷贝到其他机器使用,也可上传到仓库共享。
# 列出本机的所有 image 文件。$ docker image ls# 删除 image 文件$ docker image rm [imageName]
2.3、demo 试水
# 拉官方测试镜像$ docker image pull hello-world# 查询现有镜像文件$ docker image ls# 运行镜像文件$ docker container run hello-world
2.4、容器文件
image 文件生成的容器实例,本身也是一个文件,称为容器文件。
一旦容器生成,就会同时存在两个文件: image 文件和容器文件。而且关闭容器并不会删除容器文件,只是容器停止运行而已。
# 列出本机正在运行的容器$ docker container ls# 列出本机所有容器,包括终止运行的容器$ docker container ls --all# 终止运行的容器文件,依然会占据硬盘空间,可使用 rm 删除$ docker container rm [containerID]
2.5、Dockerfile 文件
文本文件,Docker 根据 该文件生成二进制的 image 文件。
Demo:
2.5、compose 文件
Compose 是用于定义和运行多容器 Docker 应用程序的工具。
通过 Compose,可使用 YML 文件来配置/创建/启动 应用程序需要的所有服务。
3、其他指令
启动容器 docker container run命令是新建容器,每运行一次,就会新建一个容器;复用容器则用start指令
$ docker container start [containerID]
停止容器docker container kill命令终止容器运行,相当于向容器里面的主进程发出 SIGKILL 信号docker container stop相当于向容器里面的主进程发出 SIGTERM 信号,然后过一段时间再发出 SIGKILL 信号
$ bash container stop [containerID]
查看容器输出
docker container logs命令用来查看 docker 容器的输出,即容器里面 Shell 的标准输出
$ docker container logs [containerID]
进入容器
docker container exec命令用于进入一个正在运行的 docker 容器
$ docker container exec -it [containerID] /bin/bash
拷贝容器文件到本机
$ docker container cp [containID]:[/path/to/file] .
导入导出容器
# 导出容器(制作基础镜像)$ docker export [containID] > [repository].tar
# 导入容器$ cat [username]/[repository].tar | docker import - [username]/[repository]
# 导出镜像(无网络下多个镜像组合)$ docker save [imageID] > [repository].tar
# 导入镜像$ docker load < [repository].tar
获取镜像
docker pull [repository]
4、mysql部署
# 拉取mysql镜像$ docker pull mysql:8.0.22 # 查看是否获取mysql镜像$ docker images # 运行容器 $ docker run --name mysql-test --privileged=true -p 3308:3306 -v /data/mysql/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.22 # 进入容器 $ docker exec -it study_mysql /bin/bash # 连接 MySQL $ mysql -u root -p # 修改root 授权 $ ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; # 可用宿主机或远程客户端工具访问 $ mysql -h 127.0.0.1 -P 3308 -u root -p
参考
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~