【docker】基础知识梳理与使用

every blog every motto: You can do more than you think.
https://blog.csdn.net/weixin_39190382?type=blog

0. 前言

docker基础知识的梳理与使用

1. docker的理解

Registry(仓库):是一个集中存储与分发镜像的服务。最常用的Registry是官方的Docker Hub

Images(镜像):是一个只读模板,含创建Docker容器的说明,它与操作系统的安装光盘有点像。

Containers(容器):镜像的运行实例,镜像与容器的关系类比面向对象中的类和对象

Client(客户端):是Docker的用户端,可以接受用户命令和配置标识,并与Docker daemon通信。
在这里插入图片描述

2. docker常用命令

2.1 demo

拉取镜像

docker pull how2j/tmall

激活镜像

docker run -dit --privileged -p21:21 -p80:80 -p8080:8080 -p30000-30010:30000-30010 --name how2jtmall how2j/tmall:latest /usr/sbin/init

docker run 表示运行一个镜像

  • -dit 是 -d -i -t 的缩写。 -d ,表示 detach,即在后台运行。 -i 表示提供交互接口,这样才可以通过 docker 和 跑起来的操作系统交互。 -t 表示提供一个 tty (伪终端),与 -i 配合就可以通过 ssh 工具连接到 这个容器里面去了
  • –privileged 启动容器的时候,把权限带进去。 这样才可以在容器里进行完整的操作
    -p21:21 第一个21,表示在CentOS 上开放21端口。 第二个21 表示在容器里开放21端口。 这样当访问CentOS 的21端口的时候,就会间接地访问到容器里了
  • -p80:80 和 21一个道理
  • -p8080:8080 和21 一个道理,在本例里,访问的地址是 http://192.168.84.128:8080/tmall/, 这个 192.168.84.128 是CentOS 的ip地址,8080是 CentOS 的端口,但是通过-p8080:8080 这么一映射,就访问到容器里的8080端口上的 tomcat了
  • -p30000-30010 和21也是一个道理,这个是ftp用来传输数据的
  • –name how2jtmall 给容器取了个名字,叫做 how2jtmall,方便后续管理
  • how2j/tmall:latest how2j/tmall就是镜像的名称, latest是版本号,即最新版本
  • /usr/sbin/init: 表示启动后运行的程序,即通过这个命令做初始化

在这里插入图片描述
进入容器

docker exec -it how2jtmall /bin/bash

2.2 镜像管理

  1. search 查看仓库里有些什么镜像
  2. pull 拉取镜像
  3. images 查看本地有些什么镜像
  4. rmi 删除本地镜像
  5. 修改本地镜像名称
  6. push , 把镜像提交到仓库

在这里插入图片描述
找how2j的镜像

docker search jow2j

查看本地所有的镜像

docker images

删除镜像

docker rmi <images_name>

镜像提交到仓库

push

通过tag可以对镜像进行标记,如图所示,把 docker.io/tomcat:8.0 标记成了docker.io/mytomcat:8.0

docker tag docker.io/tomcat:8.0 docker.io/mytomcat:8.0

删除所有镜像

docker rmi $(docker images -q)

2.3 容器管理

  1. 运行 run

  2. 进入 exec attach

  3. 生命周期管理, 暂停,恢复,停止,启动 pause, unpause, stop, start

  4. ps 查看所有的容器

  5. 检查某个具体的容器

  6. rm 删除容器

  7. commit,对容器做了修改后,把改动后的容器,再次转换为镜像

在这里插入图片描述
运行镜像

docker run -dit --privileged -p21:21 -p80:80 -p8080:8080 -p30000-30010:30000-30010 --name how2jtmall how2j/tmall:latest /usr/sbin/init

进入容器

docker exec -it how2jtmall /bin/bash

容器变成镜像

docker commit how2jtmall how2j/tmall:now

生命周期

暂停:pause
恢复:unpause
停止:stop
开始:start
就是常见的生命周期命令,没什么好说的。。。
需要注意的是, stop 之后再 start, 容器需要启动,tomcat也需要启动,里面的mysql 也需要启动,都很花时间,所以要等待十几秒再访问,才能看到结果,否则会误以启动失败了

检查容器的各项信息

docker inspect how2jtmall

删除容器,容器需要先停止

docker rm how2jtmall

删除所有容器

docker rm `docker ps -a -q` -f

2.4 零碎回顾

查看所有容器

docker ps -a

查看运行的容器

docker ps

启动容器

docker start id/name

进入容器(容器必须是启动的),这种方式退出容器,容器就关了

所有通过此方法进入的用户看到同样的操作

docker attach id/name

推荐使用下面这个进入

docker exec -it contain_name /bin/bash

退出容器

exit

删除容器

docker rm id/name # 删除一个停止的容器
docker rm -f id/name # 删除一个正在运行的容器

查看容器内进程信息

docker top

猜你喜欢

转载自blog.csdn.net/weixin_39190382/article/details/128778380