提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
docker入门
(本文暂不涉及docker的环境配置,仅是新手练习使用)
提示:以下是本篇文章正文内容,下面案例可供参考
一、docker是什么?
(很多人一提到docker,脑子里想到的就是这个鲸鱼驮着集装箱的图片)
官方解释
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
通俗来说,docker就是一个容器的引擎,开发者可以打包好自己想要的容器在docker上运行
二、docker的常用命令
1.镜像的查询
[root@localhost ~]# docker search mysql
2.拉取镜像
在(1)的镜像中搜索完镜像之后,我们就可以拉取自己想要的镜像进入本地库了,这里我拉取了mariadb
[root@localhost ~]# docker pull mariadb
可以注意到是分段下载的
3.查询已拉取镜像
可以看到mariadb已经被拉取下来了
[root@localhost ~]# docker image ls
4.删除镜像
[root@localhost ~]# docker image rm mariadb
删除之后再去查询发现已经删除成功了
5.创建、运行docker容器
这里有一个小技巧,当你运行一个并不存在的docker容器时,系统会给你先创建好再运行
同时需要注意的是,上面这段是要粘进去的代码,下面的图片是实际展示效果
docker run -it \
--name mysqlx \
--network wn_docker_net \
--ip 172.18.12.10 \
-p 3320:3306 \
-v /var/mysqlx:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123 \
-d mysql
5.1运行语句段的解释
docker run -it \
--name mysqlx \
--network wn_docker_net \
--ip 172.18.12.10 \
-p 3320:3306 \
-v /var/mysqlx:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123 \
-d mysql
-it 是-i与-t的合写,其中-i指代的是可持续交互,如果没有-i与容器的输入就不会打开,通俗来讲就是容器的输入会被关闭,我们就不能实时与容器进行交互了;
而-t指代的是生成伪终端,即虚拟终端,起到一个格式化、美化输出终端的作用
--name 后跟的是容器命,若没有此容器则起道一个为即将新建的容器命名的作用
--network wn_docker_net 自定义网络名称
--ip 172.18.12.10 自定义ip,其中只有最后一个点后面能变动,取值范围是0~255,但是通常不会用0和1
这两句要放在一起写才能真正的起道自定义ip的效果
-p 3320:3306 3320是自定义的映射端口,而3306是固定的被映射的端口(注意顺序不能变且后面那个3306是固定的)
-v /var/mysqlx:/var/lib/mysql 这里是备份的作用,即将容器中的文件备份到宿主上,这样就不会导致删掉容器后容器内部的数据丢失 其中:左侧的是宿主的路径,:右侧的是容器的路径
-e MYSQL_ROOT_PASSWORD=123 设置密码
-d mysql 需要用到的镜像的名称 (需注意此镜像必须提前pull下来) 起到能后台运行的作用
6、查询正在运行的docker程序
[root@localhost ~]# docker ps
[root@localhost ~]# docker ps -a
其中加上-a之后离线状态的也能被查询到
7、日志查询
[root@localhost ~]# docker logs mysqlx
8、日志查询(重定向)
首先先进入我们要放置重定向生成日志文件的文件夹
[root@localhost ~]# cd /var
[root@localhost var]# docker logs mysqlx >>mysqxl.txt
这样一来日志文件就在mysqlx.txt中了
9、使用管道+grep的方式
[root@localhost var]# docker inspect mysqlx |grep IPA
Linux中查看日志的常用方式
- docker logs + 容器命
- cat+管道+grep
- [root@localhost var]# tail -n 10 mysqxl.txt (tail -n 数量+文件名)
- head -n 数量+文件名
10、容器关闭、重启、删除
删除容器之前需要先使用stop关闭容器
docker stop 容器名称
docker restart 容器名称
docker start 容器名称
docker rm 容器名称
总结
在Linux虚拟机中,最外部是作为宿主的Linux大环境,然后里面承载着docker,在Linux中的docker内部通常也是Linux环境,docket中会有很多container(俗称容器或集装箱),这些container内部也是Linux环境,里面就装着我们需要交互的MySQL,因此相当于被包裹了三层,那么我们从MySQL退出时也是要退出两次才能到最外部的Linux