Docker的基本操作
  TEZNKK3IfmPf 2023年11月14日 28 0

1.镜像操作

1.1.镜像名称

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

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

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

如图:

02_Docker的基本操作

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

1.2.镜像命令

常见的镜像操作命令如图:

02_Docker的基本操作

1.3.案例1-拉取、查看镜像

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

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

02_Docker的基本操作

(2)根据查看到的镜像名称,拉取自己需要的镜像,通过命令:docker pull nginx

02_Docker的基本操作

(3)通过命令:docker images 查看拉取到的镜像

02_Docker的基本操作

1.4.案例2-保存、导入镜像

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

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

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

docker save --help

结果:

02_Docker的基本操作

命令格式:

 

docker save -o [保存的目标文件名称] [镜像名称]

(2)使用docker save导出镜像到磁盘

运行命令:

docker save -o nginx.tar nginx:latest

 结果如图:

02_Docker的基本操作

(3)使用docker load加载镜像

先删除本地的nginx镜像:

docker rmi nginx:latest

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

docker load -i nginx.tar

结果:

02_Docker的基本操作

1.5.练习

需求:去DockerHub搜索并拉取一个Redis镜像

目标:

(1)去DockerHub搜索Redis镜像

(2)利用docker pull命令拉取镜像

docker pull redis

(3)查看Redis镜像的名称和版本

docker images

(4)利用docker save命令将 redis:latest打包为一个redis.tar包

docker save -o redis.tar redis:latest

(5)利用docker rmi 删除本地的redis:latest

docker rmi redis:latest

(6)利用docker load 重新加载 redis.tar文件

docker load -i redis.tar

2.容器操作

2.1.容器相关命令

容器操作的命令如图:

02_Docker的基本操作

容器保护三个状态:

  • 运行:进程正常运行

  • 暂停:进程暂停,CPU不再运行,并不释放内存

  • 停止:进程终止,回收进程占用的内存、CPU等资源

其中:

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

02_Docker的基本操作

docker ps 查看所有运行的容器及状态

02_Docker的基本操作

docker ps -a:查看所有的容器

02_Docker的基本操作

 docker logs [容器名] 查看容器运行日志

02_Docker的基本操作

docker logs -f  [容器名] 持续查看容器运行日志

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

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

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

02_Docker的基本操作

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

02_Docker的基本操作

docker rm:删除一个容器

02_Docker的基本操作

2.2.案例-创建并运行一个容器

创建并运行nginx容器的命令:

docker run --name containerName -p 80:80 -d nginx

结果: 

02_Docker的基本操作

02_Docker的基本操作

命令解读:

  • docker run :创建并运行一个容器

  • --name : 给容器起一个名字,比如叫做mn

  • -p :将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口

  • -d:后台运行容器

  • nginx:镜像名称,例如nginx

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

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

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

02_Docker的基本操作

2.3.案例-进入容器,修改文件

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

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

步骤:

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

docker exec -it mn bash

02_Docker的基本操作

命令解读:

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

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

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

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

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

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

02_Docker的基本操作

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

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

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

cd /usr/share/nginx/html

查看目录下文件:

02_Docker的基本操作

(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.60.131,即可看到结果:

02_Docker的基本操作

2.4.小结

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

  • --name:指定容器名称

  • -p:指定端口映射

  • -d:让容器后台运行

查看容器日志的命令:

  • docker logs

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

查看容器状态:

  • docker ps

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

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年03月22日   60   0   0 容器Docker
  TEZNKK3IfmPf   2023年11月15日   40   0   0 redisDocker
  TEZNKK3IfmPf   2024年04月26日   54   0   0 Docker
  TEZNKK3IfmPf   2023年11月15日   35   0   0 redisDocker
  TEZNKK3IfmPf   2023年11月15日   39   0   0 Docker
  TEZNKK3IfmPf   2024年03月29日   97   0   0 Docker
TEZNKK3IfmPf