Skip to content

Latest commit

 

History

History
157 lines (101 loc) · 3.82 KB

Docker.md

File metadata and controls

157 lines (101 loc) · 3.82 KB

Docker

一、基本命令

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         //若不指定具体版本,就默认最新版

image-20240126214025004

docker exec -it nginx bash     //进入容器操作

二、基本案例

案例一 - 利用Nginx容器部署静态资源

​ 需求:

  • 创建Nginx容器,修改nginx容器内的html目录下的index.html文件,查看变化
  • 将静态资源部署到nginx的html目录

(1)创建Nginx容器——可以去docker hub中找到对应的镜像仓库

image-20240127155322689

docker pull nginx    //将镜像拉取到本地
docker run -d --name nginx -p 80:80 nginx   //创建容器并在后台运行

进入容器内命令

docker exec -it nginx bash

发现很多基本命令(ll,ls,vi)都无法使用,因为容器提供的运行环境都是最基本最小的,所以在容器中修改文件的操作很难执行

(2)

数据卷:一个虚拟目录,是容器内目录宿主机目录之间映射的桥梁,绑定后有双向映射

image-20240127210021378

image-20240127210132148

查阅文档得知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容器,判断是否有数据卷挂载
  • 基于宿主机目录实现mysql数据目录、配置文件、初始化脚本的挂载

image-20240219174605162

本地目录挂载

  • 本地目录挂载将主机上的目录挂载到容器中,容器可以读写该目录中的文件。
  • 本地目录挂载通常用于将主机上的文件与容器中的应用程序共享或持久化数据。

执行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语法

Dockerfile是一个文本文件,包含指令,说明用什么操作来构建镜像. Docker根据Dockerfile来构建镜像

image-20240219215302775

image-20240219220258323

自定义镜像

docker build -t MyImage:1.0 .  
//-t 给镜像起名
//.代表dockerfile所在的当前目录