首页 > 其他分享 >docker命令介绍-进阶学习

docker命令介绍-进阶学习

时间:2024-02-02 14:32:53浏览次数:23  
标签:容器 进阶 -- 命令 usr 镜像 docker ID

启动停止docker相关命令

systemctl start docker
systemctl status docker
systemctl stop docker
systemctl enable docker
systemctl restart docker

查看docke 信息

docker  info
docker -version

列出所有命令

docker --hlep

镜像相关命令

查看本地所有镜像

docker images

搜索镜像: 线上搜索

docker search centos(镜像名)

拉取镜像

docker pull centos(镜像名)           +:镜像版本 默认最新版

删除镜像

docker rmi  镜像名称或者镜像ID

修改镜像的tag和name

docker tag 9aed1ced115f imagename:1.0.4

清除builder缓存

docker builder prune

容器相关命令

当前运行中的容器

docker ps         -a   -l   -f   --format   -n  --no-trunc   -q
参数 -a 显示所有的容器,包括未运行的
参数 -l 显示显示最近创建的容器
参数 -f 根据条件过滤显示的内容
参数 -s 显示总的文件大小

查看容器日志

docker logs [OPTIONS] CONTAINER_ID (容器id)

Options:
--details            显示更多的信息
-f, --follow         跟踪实时日志
--since string    显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
--tail string        从日志末尾显示多少行日志, 默认是all
-t, --timestamps     显示时间戳
--until string      显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)
示例
docker logs baa8ca7f50f5 | tail -20

创建容器

docker run        
示例
docker run  -it(运行容器并进入容器,退出后自动关闭容器) --name:mycentos  centos:7(镜像名)  /bin/bash(指定命令参数)
docker run  -id(运行容器并守护(后台)模式运行) --name=testmysql -p 3336:3306(端口映射)  -e MYSQL_PASSWORD=123456(指定mysql密码) mysql(镜像名)

添加参数 -i 运行容器 -t容器启动后进入命令行 --name 创建容器名字 -v 目录映射关系(前宿主机后映射目录) -d 后台运行  -p 端口映射 (前宿主机端口后容积端口 )

进入或退出容器

docker exec   容器名称或者容器ID
exit

启动停止容器

docker start 容器名称或容器ID
docker stop 容器名称或容器ID
查看
docker ps   -a

拷贝文件至容器

docker cp xxx.cfg  容器名称:/tmp

目录挂载 -v /usr/local:/usr/local(原目录地址:容器目录地址)

docker run  -id --name:mycentos  centos:7(镜像名) -v /usr/local:/usr/local(原目录地址:容器目录地址) /bin/bash(参数)

查看容器信息

docker inspect  容器名或ID    
删选信息 如提取ip 信息
docker inspect  --format= '{{.NetworkSettings.IPAdderss}}' 容器名或ID    逐级路径用.表示

删除容器 

先stop停止容器
docker rm 容器名或ID    注  rmi删除镜像   rm 删除容器
杀死容器
docker kill 容器ID
docker kill $(docker ps -a -q)  杀死所有容器

配置容器使用空间

docker run -it --storage-opt size=120G fedora /bin/bash
--storage-opt size=120G  表示空间分配

查看容器数据

docker inspect 容器名称(容器ID)

监控容器资源使用率

docker stats
默认情况下,stats 命令会每隔 1 秒钟刷新一次输出的内容直到你按下 ctrl + c。下面是输出的主要内容:
[CONTAINER]:以短格式显示容器的 ID
[CPU %]:CPU 的使用情况
[MEM USAGE / LIMIT]:当前使用的内存和最大可以使用的内存
[MEM %]:以百分比的形式显示内存使用情况
[NET I/O]:网络 I/O 数据
[BLOCK I/O]:磁盘 I/O 数据
[PIDS]:PID 号

如果不想持续的监控容器使用资源的情况,可以通过 --no-stream 选项只输出当前的状态:
docker stats --no-stream 

格式化输出
docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}"
上面的命令中我们只输出了 Name, CPUPerc 和 Memusage 三列。下面是自定义的格式中可以使用的所有占位符:

.Container    根据用户指定的名称显示容器的名称或 ID。
.Name           容器名称。
.ID                 容器 ID。
.CPUPerc       CPU 使用率。
.MemUsage  内存使用量。
.NetIO           网络 I/O。       
.BlockIO        磁盘 I/O。
.MemPerc     内存使用率。
.PIDs             PID 号。

应用部署

首先拉取镜像   docker pull +镜像名

mysql

docker run  -id --name=testmysql -p 3336:3306  -e MYSQL_PASSWORD=123456 mysqltest
-id 后台运行容器  -p 宿主机端口-容器端口映射关系 -e 指定mysql 密码参数   指定镜像名称   
docker ps  查看是否部署成功

tomcat

docker run -id --name=mytomcat -p 9000:8080 -v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:7-jre7
-v /usr/local/webapps:/usr/local/tomcat/webapps 挂在目录

Nginx

docker run -id --name=mynginx -p 80:80 nginx
进入容器
docker exec  -it mynginx /bin/bash  
容器内nginx路径  
/etc/nginx   根据配置信息配置即可

redis

docker run -id --name=myredis -p 6379:6379 redis 
使用连接工具测试 连接测试      -h 192.168.1.1

迁移与备份

容器保存为镜像

docker commit mynginx  mynginx_01
前 容器名称  后 镜像名称
docker images  查看镜像

备份/归档镜像

docker  save -o mynginx.tar   mynginx
导出的镜像名   后 镜像名

导出容器

docker export -o export123.tar a404c6c174a2

删恢复镜像步骤

stop容器   rm容器  rmi 镜像
docker load -i mynginx.tar(备份的镜像名)

制作镜像

docker build -t 镜像名 .

最后是有个“.”的,表示使用当前目录的Dockerfile构建;
-t参数表示制成的镜像名,可任意定义。

docker load和docker import的区别: 实际上,既可以使用docker load命令来导入镜像库存储文件到本地镜像库,也可以使用docker import命令来导入一个容器快照到本地镜像库。

镜像制作

dockerfile  

作用:用于基础镜像并创建新的镜像

常用命令

FROM image_name:tag

定义使用哪个基础镜像启动构建流程

MAINTAINER user_name  

声明镜像创建者

ENV key value  

设置环境变量  如jdk

RUN command  

是Dockerfile的核心部分(可写多条)

ADD source_dir/file   dest_dir/file  

将宿主机文件复制到容器内,如果是压缩文件则复制后自动解压

COPY source_dir/file   dest_dir/file

和ADD相似,不自动解压

WORKDIR path_dir  

设置工作目录

示例-jdk1.8

本地创建目录

mkdir -p /usr/local/dockerjdk1.8

上传jdk1.8压缩包-步骤略

/usr/local/dockerjdk1.8 在上述目录中构建Dockerfile文件

vi Dockerfile   #D是大写 
FROM centos:7   #设置基础镜像
MAINTAINER user_name   #设置镜像创建者
WORKDIR  /usr  #设置当前目录
RUN mkdir /usr/local/java  #创建镜像目录
ADD jdk1.8.tar.gz   /usr/local/java 上传压缩包至目录
#设置环境变量
ENV JAVA_HOME=/usr/local/java_ jdk1.8(文件名)  
ENV JRE_HOME=$JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/bin/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
wq

开始创建

docker build -t='jdk1.8' .
docker image 查看构建是否成功

docker创建私有仓库

以registry为例创建私有仓库    主流的还有harbor

docker pull registry 
docker run -di --name=registry -p 5000:5000 registry  #创建私有仓库
https://192.168.1.1:5000/v2/_catalog  #测试创建是否成功
vi /etc/docker/daemon.json      #设置镜像源   前公网镜像源 后私有镜像源地址
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],"insecure-registries":["192.168.1.1:5000"]  
}
wq
systemctl restart docker #重启服务生效
docker start registry   #启动私有仓库容器

上传镜像至私有仓库

docker  image  #查看镜像
docker tag jdk1.8 192.168.1.1:5000/jdk1.8  #对自己创建的镜像打上标签
docker push 192.168.1.1:5000jdk1.8   #上传至私有地址  

https://192.168.1.1:5000/v2/_catalog  查看是否上传成功

下载私有仓库镜像

vi /etc/docker/daemon.json      都需要设置设置镜像源 后私有镜像源地址
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],"insecure-registries":["192.168.1.1:5000"]  
}
wq
systemctl restart docker 重启服务生效
https://192.168.1.1:5000/v2/_catalog 访问web查看镜像名
docker pull 192.168.1.1:5000/jdk1.8   即可私有仓库下载镜像

其他内容待补充


标签:容器,进阶,--,命令,usr,镜像,docker,ID
From: https://blog.51cto.com/u_13864558/9551391

相关文章

  • 已解决 -- 'swig'不是内部或外部命令,也不是可运行的程序或批处理文件
    最近在学强化学习的PPO算法,需要用到pipinstallbox2dbox2d--user这一指令,但需要下载并安装swighttps://www.swig.org/download.html  这是官网之后的步骤按照Win10下安装swig_windows10安装swig-CSDN博客就可以----------------------------------------------------......
  • linux基础命令(三)
    •Linux命令–用来实现某一类功能的指令或程序执行大多数命令,都要找到相应的程序[root@localhost~]#ls/usr/bin/hostname/usr/bin/hostname#绿色可以执行的程序[root@localhost~]#–命令的执行依赖于解释器(默认解释器:/bin/bash)用户------->解释器--......
  • 解决wsl ubuntu无法code .命令无法下载对应包的问题
    使用code.命令报错,原因:vscode.cdn.azure.cn已被弃用UpdatingVSCodeServertoversionb3e4e68a0bc097f0ae7907b217c1119af9e03435Removingpreviousinstallation...InstallingVSCodeServerforx64(b3e4e68a0bc097f0ae7907b217c1119af9e03435)Downloading:100%Fa......
  • Docker搭建私有仓库、查看私有仓库镜像
    Docker搭建私有仓库、查看私有仓库镜像:https://blog.csdn.net/weixin_42551369/article/details/88946361?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170684269116777224444425%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=17068......
  • find命令
    当前目录搜索所有文件,文件内容包含“140.206.111.111”的内容find.-typef-name"*"|xargsgrep"140.206.111.111"列出当前目录及子目录下所有文件和文件夹find.在/home目录下查找以.txt结尾的文件名find/home-name"*.txt"同上,但忽略大小写fin......
  • docker安装TIDB
    1、添加docker-compose.ymlversion:'2'networks:tidb_net:driver:bridgeipam:driver:defaultconfig:-subnet:192.168.88.0/24gateway:192.168.88.1services:pd0:image:pingcap/pd:latestpor......
  • k8s 怎么手动拉取docker镜像
    在Kubernetes中,要手动拉取Docker镜像,您可以按照以下步骤进行操作:找到所需的Docker镜像:在DockerHub(https://hub.docker.com/)或其他Docker镜像仓库中找到所需的镜像。在与Kubernetes集群连接的机器上打开终端或命令行界面。运行以下命令来手动拉取Docker镜像:dockerpull<镜像名称>:......
  • 跟着微软官方学习Powershell-在 PowerShell 中发现命令
    1、说明PowerShell预安装了大量命令。若要有效地使用PowerShell命令,您需要了解它们的工作原理。例如,你需要知道命令所采用的参数,以及可以使用多种方法来调用命令。它还有助于了解命令返回的内容、返回的类型以及命令的属性。通过了解这些事项,你可以配置如何显示帮助。此外,还......
  • Docker 导出容器到 docker-compose.yml 文件
    Docker导出容器到docker-compose.yml 文件问题:docker-compose.yml文件丢失解决办法:docker的事用docker解决背景:很多容器都是dockerrun运行的,想要转换为docker-compose.yml1.测试备份:dockerrun--rm-v/var/run/docker.sock:/var/run/docker.sockdockerproxy.com/re......
  • dotnet6 在docker运行
    安装环境: docker:docker-20.10.21.tgz Ubuntu:ubuntu-22.04.2-live-server-arm64.iso docker-compose:docker-compose-linux-x86_64 1、开启远程root远程登录 sudopasswdroot更改root密码 sudo-i切换用户 vim/etc/ssh/sshd_config 注释掉这行,允许root登录,但是禁止root......