Docker学习总结(一)

本文涉及的产品
云防火墙,500元 1000GB
简介: Docker学习总结(一)

1、镜像操作


1.1 拉取、查看镜像


步骤一:  首先去镜像仓库搜索nginx镜像,比如[DockerHub](  Docker Hub Container Image Library | App Containerization ) :


网络异常,图片无法展示
|


网络异常,图片无法展示
|


步骤二:  根据查看到的镜像名称,拉取自己需要的镜像


通过命令:docker pull nginx


注:镜像名称一般分两部分组成:[repository]:[tag]。


网络异常,图片无法展示
|


在没有指定tag时,默认是latest,代表最新版本的镜像


网络异常,图片无法展示
|


网络异常,图片无法展示
|


步骤三: 通过命令:docker images 查看拉取到的镜像


网络异常,图片无法展示
|


1.2 保存、导入镜像


步骤一:利用docker xx --help命令查看docker save和docker load的语法


例如,查看save命令用法,可以输入命令:


docker save --help


网络异常,图片无法展示
|


步骤二:使用docker save导出镜像到磁盘 ,命令格式如下:


https://developer.aliyun.com/article/1109085


运行命令:


https://developer.aliyun.com/article/1109085

结果如图:

网络异常,图片无法展示
|


步骤三:使用docker load加载镜像(大家也先可以使用docker xx --help命令查看语法)


先删除本地的nginx镜像:


docker rmi nginx:latest


网络异常,图片无法展示
|


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


docker load -i nginx.tar



结果:


网络异常,图片无法展示
|


1.3 小结


镜像操作有哪些?
查看镜像:docker images
删除镜像:docker rmi
拉取镜像:docker pull
推送镜像:docker push
保存镜像:docker save
加载镜像:docker load


2、容器操作


容器保护三个状态:


  • 运行:进程正常运行
  • 暂停:进程暂停,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


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


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


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


记得开启端口号!(或者可以直接关闭防火墙)


1.查看防火墙状态


 firewall-cmd --state


2.开启防火墙


systemctl start firewalld.service


3.开启端口


firewall-cmd --zone=public --add-port=80/tcp --permanent

4.重启防火墙(不重启以上的设置是不会生效的)


firewall-cmd --reload

现在可以去浏览器访问一下80端口,只要出现Nginx的首页就代表成功了。


网络异常,图片无法展示
|


2.2 进入容器,修改文件


需求:进入Nginx容器,修改HTML文件内容,添加“点赞+关注”


进入容器。进入我们刚刚创建的nginx容器的命令为:


docker exec -it containerName bash


命令解读:


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


网络异常,图片无法展示
|


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


网络异常,图片无法展示
|


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


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


我们执行命令,进入该目录:


cd /usr/share/nginx/html


查看目录下文件:


网络异常,图片无法展示
|


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


sed -i -e 's#Welcome to nginx#求个关注+点赞!#g' -e 's#<head>#<head><meta charset="utf-8">#g' index.html


我们再用浏览器访问一下:


网络异常,图片无法展示
|


输入exit就可以退出了


网络异常,图片无法展示
|


2.3 查看容器


查看正在运行的容器


 docker ps

查看所有状态的容器


docker ps -a


2.4 删除容器


删除容器(不能删除正在运行的容器)

docker rm 容器的名字


网络异常,图片无法展示
|


强制删除

docker rm -f 容器的名字


网络异常,图片无法展示
|


2.5 小结


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


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


查看容器日志的命令:


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


查看容器状态:


  • docker ps
  • docker ps -a 查看所有容器,包括已经停止的
目录
相关文章
|
2月前
|
存储 Ubuntu Linux
学习docker
学习docker
34 1
|
2月前
|
NoSQL Linux Redis
Docker学习二(Centos):Docker安装并运行redis(成功运行)
这篇文章介绍了在CentOS系统上使用Docker安装并运行Redis数据库的详细步骤,包括拉取Redis镜像、创建挂载目录、下载配置文件、修改配置以及使用Docker命令运行Redis容器,并检查运行状态和使用Navicat连接Redis。
258 3
|
2月前
|
运维 Kubernetes 开发者
Docker Swarm学习
【10月更文挑战第5天】
37 3
|
2月前
|
Kubernetes Linux 持续交付
docker容器学习
【10月更文挑战第1天】
39 1
|
3月前
|
存储 Ubuntu Docker
Docker学习
Docker学习
63 4
|
2月前
|
Linux 应用服务中间件 Shell
docker学习--docker容器镜像常用命令大全(简)
本文档详细介绍了Docker中的镜像命令与容器管理命令。镜像命令部分涵盖了镜像搜索、下载、上传等操作;容器管理命令则包括了容器的创建、启动、停止、删除及日志查看等功能。通过具体示例,帮助用户更好地理解和使用Docker相关命令。
165 0
|
2月前
|
Shell 应用服务中间件 nginx
docker学习--最详细的docker run 各子命令解释与应用
`docker run` 是 Docker 中用于启动容器的基本命令。常用子命令包括 `-i`(交互模式)、`-t`(分配终端)、`-d`(后台运行)、`-p`(端口映射)、`--name`(指定容器名)。例如,`docker run -it nginx:1.20 /bin/bash` 可以创建并进入交互式容器。使用 `-d` 可在后台运行容器,`-p` 可将容器端口映射到主机端口,`--name` 则用于自定义容器名称以便管理。
210 0
|
4月前
|
网络协议 Shell Docker
docker 学习之路
docker 学习之路
39 1
|
6月前
|
NoSQL Redis Docker
Docker再学习 - 实战
Docker再学习 - 实战
40 1
|
6月前
|
Java C++ Docker
Docker再学习 - 阿里加速配置篇
Docker再学习 - 阿里加速配置篇
328 0