栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

docker 常用命令

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

docker 常用命令

docker 常用命令 (一)docker 理解

百度百科:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

一个完整的Docker有以下几个部分组成:

  1. DockerClient客户端
  2. Docker Daemon守护进程
  3. Docker Image镜像
  4. DockerContainer容器

个人理解docker中的 镜像 就像是java中的calss,而容器是基于这个镜像构建出的实例 类似于class构造出一个个实例对象。

简言之

docker镜像 -------java中的class
docker容器 -------java中class  new 出来的实例对象

每一个 Docker容器都是独立和安全的应用平台(我们可以理解为,每一个docker容器都相当于在我们的服务器上占用资源然后开辟了属于自己的一个空间(也可以理解为服务器))

(二)docker基础命令

启动docker

systemctl  start  docker  

关闭docker

systemcty  stop  docker

重启docker

systemcty  restart  docker

docker设置随服务启动而启动

systemcty enable  docker

查看docker运行状态

systemctl status docker

查看docker 版本号信息

docker  version    #版本信息
docker info        #显示docker的系统信息

docker 帮助命令

docker --help  #如果忘记了某些命令可以使用此命令

比如

docker   logs   --help

(三)docker镜像命令

查看服务器中docker镜像列表

docker  imsges  

各个选项的说明:
REPOSITORY:表示镜像的仓库源
TAG :镜像的标签
IMAGE ID :镜像的ID
CREATED :镜像的创建时间
SIZE :镜像的大小

搜索镜像

docker  search  镜像名
docker  search --filter=STARS=9000 mysql   说明:搜索 STARS >9000的 mysql 镜像


拉取镜像

docker   pull   镜像名    #不加tag(版本号) 即拉取docker仓库中 该镜像的最新版本latest 加:tag 则是拉取指定版本
docker   pull  镜像名:tag   

删除镜像 #当前镜像没有被任何容器使用才可以删除

#删除一个
docker  rmi  -f  镜像名/镜像id
#删除多个
docker rmi -f 镜像名/镜像id 镜像名/镜像id 镜像名/镜像id
#删除全部镜像 -a 显示全部 -q只显示id
docker rmi -f  $(docker images  -aq)
#强制删除
docker  images  rm  镜像名称/镜像id 

保存镜像

docker   save  镜像名/镜像id -o 镜像保存的位置
docker  save  nginx  -o  /home/wqewqw


加载镜像

#任何装docker的地方加载镜像保存文件,使其恢复一个镜像

docker load  -i  镜像保存文件位置
docker  load -i wqewqw

(四)docker容器命令

前言 容器的启动需要镜像的支持

查看正在运行容器列表

docker  ps  
docker ps  -a   #加-a会包含正在运行和已停止的

容器怎么来的?可以通过run镜像来构建

运行一个容器

# -it 表示 与容器进行交互式启动 -d 表示可后台运行容器 (守护式运行)  --name 给要运行的容器起的名字  /bin/bash  交互路径
docker run -it -d  --name 要取的别名 镜像名:Tag   /bin/base
docker attach 容器id   #不建议

举例

docker  run -it -d --name mysql99  mysql:5.7  /bin/bash


# netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息

netstat -untlp

停止容器

docker  stop  容器名/容器id

删除容器

#删除一个容器
docker rm -f 容器名/容器ID
#删除多个容器 空格隔开要删除的容器名或容器ID
docker rm -f 容器名/容器ID 容器名/容器ID 容器名/容器ID
#删除全部容器
docker rm -f $(docker ps -aq)

从容器退出到自己服务器中

#-----直接退出  未添加 -d(持久化运行容器) 时 执行此参数 容器会被关闭  
exit
# 优雅提出 --- 无论是否添加-d 参数 执行此命令容器都不会被关闭
Ctrl + p + q

停止容器

docker  stop 容器id/容器名

重启容器

docker  restart 容器id/容器名

启动容器

docker  start  容器名/容器id

强制停止

docker  kill  容器ID/容器名

容器文件拷贝 --无论容器是否开启 都可以进行拷贝

#从容器内 拷出
docker  cp 容器id/容器名  : 容器内路径 容器外路径
#从外部拷贝文件到容器内
docker  cp 容器外路径 容器ID/容器名: 容器内路径

查看容器日志

docker  logs -f  --tail=要查看末尾多少行 默认all 容器id
docker  logs -f  --tail=50 0f5203960698

启动容器时,使用docker run命令时 添加参数--restart=always 便表示,该容器随docker服务启动而自动启动

docker run -d -e prefer_host_mode=127.0.0.1 -e MODE=standalone -v /nacos/logs:/opt/software/nacos/logs -p 8848:8848 --name nacos --restart=always nacos/nacos-server

− d 后 台 运 行 − e 环 境 变 量 设 置 − v 某 个 容 器 的 目 录 : 映 射 c e n t o s 上 的 某 个 目 录 ( 根 据 实 际 的 设 置 ) − p 外 部 访 问 端 口 : 内 部 被 映 射 端 口 ( 根 据 实 际 的 设 置 ) − n a m e 容 器 的 名 称 − r e s t a r t 重 启 策 略 -d 后台运行 -e 环境变量设置 -v 某个容器的目录:映射centos上的某个目录(根据实际的设置) -p 外部访问端口:内部被映射端口(根据实际的设置) -name 容器的名称 -restart 重启策略 −d后台运行−e环境变量设置−v某个容器的目录:映射centos上的某个目录(根据实际的设置)−p外部访问端口:内部被映射端口(根据实际的设置)−name容器的名称−restart重启策略

查看容器中进程信息

docker  top  容器id  #容器必须启动状态

查看镜像中元数据

docker  inspect  容器id

更换容器名

docker rename 容器ID/容器名 新容器名
(五)自己提交一个镜像

我们运行的容器可能在镜像的基础上进行修改。有时候我们需要保存起来,封装成一个更新的镜像,这时我们需要commit命令来构建一个新的镜像

docker  commit -m="提交的信息" -a="作者信息" 容器名/容器id  提交后的镜像名称
(六)容器卷技术

直接使用命令来挂载:-v(双向的)

docker  run -it -v  主机目录  : 容器内目录

测试

docker   run  -it   -v  /home/ceshi:/home centos /bin/bash

启动起来后我们可以查看docker inspect 容器id 查看mounts内容 挂载 -v 卷

docker   inspect 容器id

(七)具名和匿名挂载

#如何确定是具名挂载还是匿名挂载,还是指定路径挂载

-v 容器内路径                      #匿名挂载
-v  卷名:容器内路径                #具名挂载
-v /宿主机挂载:容器内路径           #指定路径挂载

所有的docker容器内的卷,没有指定目录的情况下都是载

/var/lib/docker/volums/xxxx/_data

#匿名挂载
-v 容器内路径

docker  run  -d  -P --name nginx01 -v /etc/nginx nginx
#查看所有的volume  的情况
docker  volume ls 

#具名挂载

docker  run   -d  -P --name  nginx02  -v  juming-nginx:/etc/nginx nginx
#查看所有的volume  的情况
docker  volume inspect  juming-nginx

-p:指定连接容器的端口号 P不需要指定

(八)docker安装tomcat

下载启动

docher   pull   tomcat

启动运行

docker   run -d  -p   3355:8080 --name tomcat01  tomcat

进入容器

 docker   exec  -it  tomcat01 /bin/bash
 #查看没有webapps  
cp -r  webapps.dist/*  webapps
(九)Docker 安装nginx

一. 搜索镜像 search
二. 下载镜像 pull
三. 运行镜像

docker   images
docker     run   -d  --name  nginx01   -p  3344:80  nginx
# -d   后台运行     --name  给容器命名    -p  宿主机端口,容器内部端口
docker   ps     
curl  localhost : 3344  说明:启动nginx
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/839990.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号