认识docker
1.镜像和容器
- 当我们利用 Docker 安装应用时,Docker 会自动搜索并下载
镜像(image)
。镜像不仅包含应用本身,还包含应用运行所需要的环境、配置、系统函数库
。Docker 会在运行镜像时创建一个隔离环境
,称为容器(container)
。
2.MySQL镜像命令解读
- 镜像名称一般分为两部分组成:
[repository]:[tag]
。- 其中
repository
就是镜像名。 tag
是镜像的版本。
- 其中
- 在没有指定
tag
时,默认是latest
,代表最新版本的镜像。
3.docker常用命令
docker --help
===> docker查看命令帮助手册。docker logs -f 容器名
===> 查看指定容器的日志。docker version
===> 查看docker的版本信息。docker exec -it 容器名 bash
===> 通过命令行的方式进入容器内进行交互。(可以进入到MySQL容器后登录到MySQL)docker inspect 容器名
===> 查看指定容器的详细信息。
4.数据挂载
(1)数据卷
数据卷(volume)
是一个虚拟目录,是容器内目录
与宿主机目录
之间映射的桥梁。
- 在执行
docker run
命令时,使用-v 数据卷:容器内目录
可以完成数据卷挂载。 - 当创建容器时,如果挂载了数据卷且数据卷不存在,会自动创建数据卷。
(2)本地目录挂载
- 在执行
docker run
命令时,使用-v 本地目录:容器内目录
可以完成本地目录挂载。 - 本地目录必须使用 "/" 或 "./" 开头,如果直接以名称开头,会被识别为数据卷而非本地目录。
- -v mysql : /var/lib/mysql 会被识别为一个数据卷叫 mysql。
- -v ./mysql : /var/lib/mysql 会被识别为当前目录下的 mysql 目录。
5.自定义镜像
- 镜像就是包含了应用程序、程序运行的系统函数库、运行配置等文件的文件包。构建镜像的过程其实就是把上述文件打包的过程。
(1)Dockerfile
-
Dockerfile
就是一个文本文件,其中包含一个个的指令(Instruction)
,用指令来说明要执行什么操作来构建镜像。将来Docker
可以根据Dockerfile
帮我们构建镜像。常见指令如下:
-
当编写好了
Dokcerfile
,可以利用下面的命令来构建镜像:bashdocker build -t myImage:1.0 .
-t
:是给镜像起名,格式依然是repository:tag
的格式,不指定tag
时,默认为latest
。.
:是指定Dockerfile
所在目录,如果就在当前目录,则指定为 "."。
6.容器网络互连
-
默认情况下,所有容器都是以
bridge
方式连接到Docker
的一个虚拟网桥上的:
-
加入自定义网络的容器才可以通过容器名互相访问,Docker的网络操作如下:
-
可以使用下面的参数在创建容器的时候指定该容器加入某个网络:
bashdocker run -d --name olive -p 8800:8800 --network GDB olive #创建一个后台运行的容器 olive 并且加入 GDB 网络中
8、参考
- [1]. 镜像仓库
- [2]. Dockerfile的copy复制文件夹