Docker 入坑记

网友投稿 784 2022-11-17

Docker 入坑记

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小时内删除侵权内容。

上一篇:文章序
下一篇:MyBatis中防止SQL注入讲解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~