SpringCloud学习九(Docker基本操作)

SpringCloud学习九(Docker基本操作)

docker的启动命令【刚连接的虚拟机必须启动,才可以执行下面的命令】

# 启动docker
systemctl start docker
# 检测docker镜像状态
systemctl status docker

1、镜像命令

首先来看下镜像的名称组成:

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

如图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yrv5qzJu-1653866548213)(images/docker/image-20220529205514556.png)]

这里的mysql就是repository,5.7就是tag,合一起就是镜像名称,代表5.7版本的MySQL镜像。

1.2.镜像命令

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j2yp6S3v-1653866548215)(images/docker/image-20220529205538656.png)]

对于docker的命令不一定需要死记,只需要通过如下代码查看手册即可

docker --help  # 查看所有的手册
docker run --help # 查看run命令的使用手册
1.3、镜像拉取案例一

需求:从DockerHub中拉取一个nginx镜像并查看

1)首先去镜像仓库搜索nginx镜像,比如DockerHub:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bqzu3dL0-1653866548215)(images/docker/1、搜索.png)]

点击进入详情

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MHkkadWB-1653866548216)(images/docker/2、详情.png)]

复制实例命令拉取

docker pull nginx

2):查看镜像命令

docker images

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YVBUmjS3-1653866548217)(images/docker/3、查看镜像.png)]

1.4、案例二:利用docker save将nginx镜像导出磁盘,然后通过load加载回来

通过命令clear可以清空屏幕命令

需求:利用docker save将nginx镜像导出磁盘,然后再通过load加载回来

  1. 利用docker xx --help命令查看docker save和docker load的语法

    docker save --help
    

    输出结果

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VaMHbyre-1653866548218)(images/docker/4、查看save手册.png)]

    命令格式如下:

    docker save -o [保存的目标文件名称] [镜像名称]
    
  2. 使用docker save导出镜像到磁盘

    docker save -o nginx.tar nginx:latest
    

    导出结果

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YkNQbt3M-1653866548218)(images/docker/5、导出.png)]

  3. 使用docker load加载镜像

    先删除本地的nginx镜像:

    docker rmi nginx:latest
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6ucGcfRn-1653866548219)(images/docker/6、删除镜像.png)]

    然后运行命令,加载本地文件:

    docker load -i nginx.tar
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-THLK4BH8-1653866548220)(images/docker/7、加载镜像.png)]

镜像命令总结

命令 描述
systemctl start docker 启动docker,不启动后面的命令都无效
systemctl status docker 检测docker的启动状态
docker pull xxx 拉取xxx镜像
docker image 查看所有镜像
docker rmi xxx:latest 删除xxx镜像
docker save -o [文件名称] xxx:latest 将xxx镜像保存为
ls 查看保存的镜像文件
docker load -i xxx:latest 加载xxx镜像文件

2、容器相关命令

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GkQ6QSdT-1653866548221)(images/docker/8、容器命令.png)]

容器保护三个状态:

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

其中:

  • docker run:创建并运行一个容器,处于运行状态

  • docker pause:让一个运行的容器暂停

  • docker unpause:让一个容器从暂停状态恢复运行

  • docker stop:停止一个运行的容器

  • docker start:让一个停止的容器再次运行

  • docker rm:删除一个容器

案例一:创建运行一个Nginx容器

创建并运行nginx容器的命令:(可以在官网上查看)

docker run --name [名称:mp] -p 80:80 -d [镜像名称nginx]

命令解读:

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

这里的-p参数,是将容器端口映射到宿主机端口。

默认情况下,容器是隔离环境,我们直接访问宿主机的80端口,肯定访问不到容器中的nginx。

现在,将容器的80与宿主机的80关联起来,当我们访问宿主机的80端口时,就会被映射到容器的80,这样就能访问到nginx了:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-itjP3KO7-1653866548222)(images/docker/image-20220529214537299.png)]

执行上面的命令创建并执行容器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D7LLj8ky-1653866548223)(images/docker/9、创建并运行容器.png)]

在浏览器中访问我们的虚拟机80端口就会进入容器的欢迎页面

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qdfuQ9Yb-1653866548224)(images/docker/10、访问虚拟机.png)]

输入密码docker logs mn查看输入的日志

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7TNJNtUB-1653866548225)(images/docker/11、查看日志.png)]

输入docker logs -f mn命令就会持续的跟着日志了,不需要再次的手动查看

Ctrl + c 停止日志

案例二:案例-进入容器,修改文件

需求:进入Nginx容器,修改HTML文件内容,添加“中国欢迎您”

提示:进入容器要用到docker exec命令。

步骤:

  1. 进入我们刚刚创建的nginx容器的命令为:
    docker exec -it mn bash
    

    命令解读:

    • docker exec :进入容器内部,执行一个命令

    • -it : 给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互

    • mn :要进入的容器的名称

    • bash:进入容器后执行的命令,bash是一个linux终端交互命令

  2. 进入nginx的HTML所在目录 /usr/share/nginx/html

    容器内部会模拟一个独立的Linux文件系统,看起来如同一个linux服务器一样:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2pASfjs8-1653866548225)(images/docker/12、进入文件.png)]

    nginx的环境、配置、运行文件全部都在这个文件系统中,包括我们要修改的html文件。

    查看DockerHub网站中的nginx页面,可以知道nginx的html目录位置在/usr/share/nginx/html

  3. 修改index.html的内容

    容器内没有vi命令,无法直接修改,我们用下面的命令来修改:

    sed -i -e 's#Welcome to nginx#北京欢迎您#g' -e 's#<head>#<head><meta charset="utf-8">#g' index.html
    

    在浏览器访问自己的虚拟机地址,例如我的是:http://192.168.150.101,即可看到结果

容器命令总结

命令 描述
docker run --name [名称:mp] -p 80:80 -d [镜像名称nginx] 创建并运行容器
systemctl start docker 启动docker,不启动后面的命令都无效
systemctl status dockerdocker ps 检测docker的启动状态查看运行的所有容器
docker logs [容器名称] 查看指定容器的日志信息
docker logs -f [容器名称] 持续查看指定容器的日志信息
docker exec -it [容器名称] bash 进入容器
exec 进入进入容器修改文件【不推荐】
docker ps 查看运行容器状态
docker stop [容器名称] 停止容器
docker ps -a 查看所有容器状态
docker rm [容器名称] 删除容器
docker rm -f [容器名称] 强制删除容器

3、Docker容器基本操作练习

练习一:创建并运行一个redis容器,并支持数据持久化
  1. 到DockerHub搜索Redis镜像

  2. 查看Redis镜像文档中的帮助信息

  3. 利用docker run 命名运行一个Redis容器

    docker run --name mr -p 6379:6379 -d redis redis-server --appendonly yes
    
练习二:进入redis容器,并执行redis-cli客户端命令,存入num=666

进入容器

docker exec -it mr redis-cli

查看已有的数据

keys *

插入数据

set num 666

查看键值

get num

退出容器【两次】

exit

猜你喜欢

转载自blog.csdn.net/baidu_39378193/article/details/125039643
今日推荐