1.启动docker服务
systemctl start docker
systemctl restart docker //重启动
2.docker设置开机自启动
systemctl enable docker
3.查看docker里面下载的应用镜像
docker images
docker rmi [images] //删除镜像
4.重启docker后台线程
systemctl daemon-reload
5.docker run(创建容器)命令中的常见参数
-d
:让容器后台运行--name
:给容器命名-e
:环境变量-p
:宿主机端口映射容器内端口
镜像名称结构:
Repository:TAG
镜像名:版本
docker run -d \
--name nginx \
-p 80:80 \ //将宿主机端口映射到容器内80端口
nginx //若不指定具体版本,就默认最新版
docker exec -it nginx bash //进入容器操作
需求:
- 创建Nginx容器,修改nginx容器内的html目录下的index.html文件,查看变化
- 将静态资源部署到nginx的html目录
(1)创建Nginx容器——可以去docker hub中找到对应的镜像仓库
docker pull nginx //将镜像拉取到本地
docker run -d --name nginx -p 80:80 nginx //创建容器并在后台运行
进入容器内命令
docker exec -it nginx bash
发现很多基本命令(ll,ls,vi)都无法使用,因为容器提供的运行环境都是最基本最小的,所以在容器中修改文件的操作很难执行
(2)
数据卷:一个虚拟目录,是容器内目录与宿主机目录之间映射的桥梁,绑定后有双向映射
查阅文档得知html目录地址
FROM nginx
COPY static-html-directory /usr/share/nginx/html
-v 数据卷名:容器内目录
在执行 docker run
命令时完成数据挂载
docker run -d --name nginx -p 80:80 -v html:/usr/share/nginx/html ngin
最后对本地的html(可通过 docker volume inspect nginx
获得本地位置)操作,来取得双方同步
需求:
- 查看mysql容器,判断是否有数据卷挂载
- 基于宿主机目录实现mysql数据目录、配置文件、初始化脚本的挂载
本地目录挂载
- 本地目录挂载将主机上的目录挂载到容器中,容器可以读写该目录中的文件。
- 本地目录挂载通常用于将主机上的文件与容器中的应用程序共享或持久化数据。
执行docker run 命令时,使用 -v 本地目录:容器内目录可以完成本地目录挂载
- 必须以/ 或 ./开头,否则可能会被识别为数据卷而不是本地目录
docker run -d
--name mysql
-p 3306:3306
-e TZ=Asia/Shanghai
-e MYSQL_ROOT_PASSWORD=123
-v /root/mysql/data:/var/lib/mysql mysql
Dockerfile是一个文本文件,包含指令,说明用什么操作来构建镜像. Docker根据Dockerfile来构建镜像
docker build -t MyImage:1.0 .
//-t 给镜像起名
//.代表dockerfile所在的当前目录