Docker的基本操作

1.镜像名称

1、镜像的组成

1、镜名称一般分两部分组成:[repository]:[tag]2、在没有指定tag时,默认是latest,代表最新版本的镜像

在这里插入图片描述这里的mysql就是repository,5.7就是tag,合一起就是镜像名称,代表5.7版本的MySQL镜像。

2、镜像命令
在这里插入图片描述

常用命令

docker pull      ##   从官方拉取镜像

---docker pull mysql

docker load    ##  加载压缩包为一个镜像
格式:docker load -i [保存的目标文件名称]
示例:docker load  -i mysql.tar

docker save  ##  保存镜像为一个压缩包
格式:docker save -o [保存的目标文件名称] [镜像名称]
示例:docker save -o mysql.tar mysql:latest

docker images   ## 查看拉取到的镜像
docker ps [-a]  ## 查看启动的镜像  [-a] 包含未启动的
docker rmi nginx:latest  ## 删除本地的镜像

2.容器操作

2.1.容器相关命令

在这里插入图片描述

容器保护三个状态:

  • 运行:进程正常运行
  • 暂停:进程暂停,CPU不再运行,并不释放内存
  • 停止:进程终止,回收进程占用的内存、CPU等资源

其中

  • docker run:创建并运行一个容器,处于运行状态
  • docker pause:让一个运行的容器暂停
  • docker unpause:让一个容器从暂停状态恢复运行
  • docker stop:停止一个运行的容器
  • docker start:让一个停止的容器再次运行
  • docker rm:删除一个容器

2.1.创建并运行一个容器

创建并运行nginx容器的命令:
docker run --name containerName -p 80:80 -d nginx
命令解读:

  • docker run :创建并运行一个容器
  • –name : 给容器起一个名字,比如叫做mn
  • -p 将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口
  • -d:后台运行容器
  • nginx:镜像名称,例如nginx

进入Nginx容器
docker exec -it mn bash
命令解读:

  • docker exec :进入容器内部,执行一个命令
  • -it : 给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互
  • mn :要进入的容器的名称
  • bash:进入容器后执行的命令,bash是一个linux终端交互命令

2.2.小结

1、docker run命令的常见参数有哪些?

  • –name:指定容器名称
  • -p:指定端口映射
  • -d:让容器后台运行

2、查看容器日志的命令:

  • docker logs
  • 添加 -f 参数可以持续查看日志

3、查看容器状态:

  • docker ps
  • docker ps -a 查看所有容器,包括已经停止的

3.数据卷(容器数据管理)

3.1.什么是数据卷?

数据卷(volume)是一个虚拟目录,指向宿主机文件系统中的某个目录。
在这里插入图片描述

3.2.数据集操作命令

数据卷操作的基本语法如下:

docker volume [COMMAND]

docker volume命令是数据卷操作,根据命令后跟随的command来确定下一步的操作:

【create 】创建一个volume
示例: docker volume create html

【inspect 】显示一个或多个volume的信息
示例: docker volume inspect html

【ls 】列出所有的volume
示例:docker volume ls

【prune 】删除未使用的volume

【rm 】删除一个或多个指定的volume

3.3.挂载数据卷

命令:
docker run \
  --name mn \
  -v html:/root/html \
  -p 8080:80
  nginx \
`-v html:/root/htm` :把html数据卷挂载到容器内的/root/html这个目录中

3.4.给nginx挂载数据卷

① 创建容器并挂载数据卷到容器内的HTML目录
docker run --name mn -v html:/usr/share/nginx/html -p 80:80 -d nginx

② 进入html数据卷所在位置,并修改HTML内容
# 查看html数据卷的位置
docker volume inspect html
# 进入该目录
cd /var/lib/docker/volumes/html/_data
# 修改文件
vi index.html

3.5.给MySQL挂载本地目录

容器不仅仅可以挂载数据卷,也可以直接挂载到宿主机目录上。关联关系如下:

· 带数据卷模式:宿主机目录 --> 数据卷 ---> 容器内目录
· 直接挂载模式:宿主机目录 ---> 容器内目录

在这里插入图片描述

语法
目录挂载与数据卷挂载的语法是类似的:

  • -v [宿主机目录]:[容器内目录]
  • -v [宿主机文件]:[容器内文件]

需求:创建并运行一个MySQL容器,将宿主机目录直接挂载到容器

实现思路如下:

1)从DockerHub拉取mysql镜像
`docker pull mysql`
2)创建目录/tmp/mysql/data
`mkdir - p /tmp/mysql/data`
3)创建目录/tmp/mysql/conf,将课前资料提供的hmy.cnf文件上传到/tmp/mysql/conf
`mkdir - p /tmp/mysql/conf`
4)去DockerHub查阅资料,创建并运行MySQL容器,要求:

① 挂载/tmp/mysql/data到mysql容器内数据存储目录

② 挂载/tmp/mysql/conf/hmy.cnf到mysql容器的配置文件

③ 设置MySQL密码

`docker run 
-d --name mysql-test01 
-p 3307:3306 
--privileged=true 
-v /tmp/mysql/data:/var/lib/mysql 
-v /tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf 
-e MYSQL_ROOT_PASSWORD=1234 mysql:latest`

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值