Docker常用命令练习

news2024/11/13 10:59:11

文章目录

  • Docker常用命令练习
  • 1.docker 基础命令
  • 2.镜像命令
  • 3.保存镜像
  • 4.加载镜像
  • 5.容器命令
  • 6.环境变量
  • 7. --rm
  • 8. --network=host

Docker常用命令练习

1.docker 基础命令

安装docker

yum install docker

启动docker

systemctl start docker

关闭docker

systemctl stop docker

重启docker

systemctl restart docker

docker设置随服务启动而自启动

systemctl enable docker

查看docker 运行状态

systemctl status docker

查看docker 版本号信息

docker version
docker info

docker 帮助命令
忘记了某些命令便可使用此进行查看与回顾

docker --help

比如 咱忘记了 拉取命令 不知道可以带哪些参数 咱可以这样使用

docker pull --help

2.镜像命令

查看镜像列表

docker images

搜索镜像

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

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

docker pull 镜像名 
docker pull 镜像名:tag

运行镜像 ----咱拉取一个tomcat 跑起来试一试(没有拉取也可以直接运行,会自动检测拉取然后运行)

> docker run 镜像名 
> docker run 镜像名:Tag 
> docker pull tomcat
> docker run tomcat

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

1.删除一个 (-f 强制删除)
docker rmi -f 镜像名/镜像ID
2.删除多个 其镜像ID或镜像用用空格隔开即可 
docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID
3.删除全部镜像  -a 意思为显示全部, -q 意思为只显示ID
docker rmi -f $(docker images -aq)
4.删除镜像
docker image rm 镜像名称/镜像ID

3.保存镜像

将我们的镜像 保存为tar 压缩文件 这样方便镜像转移和保存 ,然后 可以在任何一台安装了docker的服务器上 加载这个镜像
命令:

docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字

docker save tomcat -o /myimg.tar

保存镜像任务执行完毕,我们来看下指定位置下是否有该tar?

4.加载镜像

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

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

加载文件 恢复为镜像

然后通过tag打标签

docker tag   原容器id 新容器名:版本号

5.容器命令

1.查看正在运行容器列表

docker ps

2.查看所有容器 -----包含正在运行 和已停止的

docker ps -a

3.运行一个容器

 docker run -it --name 要取的别名 镜像名:Tag /bin/bash 

 -it 表示 与容器进行交互式启动
 -d 表示可后台运行容器 (守护式运行)  
--name 给要运行的容器 起的名字  
/bin/bash  交互路径

4.停止容器

docker stop 容器名/容器ID

5.删除容器

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

6.容器端口与服务器端口映射
命令:

-p 宿主机端口:容器端口   (注意是小写的p)
-P 宿主机随机端口:容器端口  (注意是大写P) 

-p 9090:80 解析 将容器内部的 80端口与docker 宿主机(docker装在哪太服务器 那台服务器 )9090端口进行映射 那通过外部访问宿主机9090端口 即可访问到 docker 容器 80端口了

docker run -d --name nginx01 -p 9090:80  nginx
docker run -d --name nginx02 -p 9091:80  nginx

在Docker中, -p 和 -P 是用于映射容器端口到主机端口的两个选项。它们之间的区别如下:

  1. -p 选项:这个选项用于映射指定的容器端口到主机的指定端口。例如,使用 -p 8080:80 将容器的80端口映射到主机的8080端口。你可以指定容器和主机的端口号。
  2. -P 选项:这个选项用于自动将容器的所有暴露的端口映射到主机的随机端口。Docker会自动分配一个主机端口,并将容器端口映射到该主机端口上。类似docker -p :80 你可以使用 docker port <container_name> 命令来查看容器的映射端口。
  3. 总结来说,-p 选项允许你手动指定容器和主机的端口映射关系,而 -P 选项则是自动将容器的所有暴露的端口映射到主机的随机端口上。

7.进入容器
这里咱就进入 前面的 nginx1 容器

docker exec -it 容器名/容器ID /bin/bash

8.退出容器
从容器内 退出到自己服务器中 需注意 两个退出命令的区别
直接退出 未添加 -d(持久化运行容器) 时 执行此参数 容器会被关闭

exit

优雅退出 — 无论是否添加-d 参数 执行此命令容器都不会被关闭

Ctrl + p + q

9.停止容器

docker stop 容器ID/容器名

10.重启容器

docker restart 容器ID/容器名

11.启动容器

docker start 容器ID/容器名

12.kill 容器

docker kill 容器ID/容器名

13.容器文件拷贝
Docker的cp命令用于在主机和容器之间复制文件和目录,其基本语法如下:

docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH

这里,

  • SRC_PATH 是源文件或目录的路径,它可以是主机上的路径(用于从主机复制到容器)或容器内的路径(用于从容器复制到主机)。
  • CONTAINER 是容器的名称或ID。
  • DEST_PATH 是目标文件或目录的路径,它可以是主机上的路径(用于从容器复制出来)或容器内的路径(用于将文件复制到容器内)。

选项(OPTIONS)可能包括:

  • -L--follow-link:跟随符号链接(symbolic links)。

例如:

  1. 将主机上的文件/path/to/local/file.txt复制到名为my_container的容器的/path/in/container目录下:

    docker cp /path/to/local/file.txt my_container:/path/in/container/
    
  2. 将容器my_container中的/path/in/container/file.txt文件复制到主机的/path/on/host目录下:

    docker cp my_container:/path/in/container/file.txt /path/on/host/
    

注意:在执行docker cp命令时,容器不一定需要处于运行状态,但必须已经存在。此外,Docker守护进程需要有足够的权限访问主机和容器中的文件系统路径。

14.查看容器日志

docker logs -f --tail=要查看末尾多少行 默认all 容器ID

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

docker run -d  -p 8888:80 --restart=always --name my-nginx nginx

16.数据挂载
简单来讲,就是将容器内的数据与外部宿主机文件绑定起来,类似一个双持久化,当容器删除时,宿主机文件数据目录仍在,下次启动容器只要将数据目录指向宿主机数据所在位置即可恢复!
命令:
-v 宿主机文件存储位置:容器内文件位置
如此操作,就将 容器内指定文件挂载到了宿主机对应位置,-v命令可以多次使用,即一个容器可以同时挂载多个文件
-v 宿主机文件存储位置:容器内文件位置 -v 宿主机文件存储位置:容器内文件位置 -v 宿主机文件存储位置:容器内文件位置

docker run -v <volume名或宿主机绝对路径>:<容器内绝对路径> <镜像名>
例如:
docker run -v my_volume:/data busybox
或使用宿主机目录
docker run -v /host/path:/container/path busybox

17.更换容器名

docker rename 容器ID/容器名 新容器名

18.自己提交一个镜像
我们运行的容器可能在镜像的基础上做了一些修改,有时候我们希望保存起来,封装成一个新的镜像,这时候我们就需要使用 commit 命令来构建一个新的镜像

docker commit -m="提交信息" -a="作者信息" 容器名/容器ID 提交后的镜像名:Tag

6.环境变量

docker run -d --name my_container -e VAR_NAME=value -e ANOTHER_VAR=some_value your_image_name

docker run -d -e name=fpl1116 -e girl=beautiful nginx

在上述命令中:
-d 表示在后台运行容器(detach mode)。
–name 用于指定容器的名称。
-e VAR_NAME=value 和 -e ANOTHER_VAR=some_value 分别用来设置环境变量 VAR_NAME 和 ANOTHER_VAR,它们的值分别为 value 和 some_value。 your_image_name是你想要运行的Docker镜像的名字。 如果你需要设置多个环境变量,可以多次使用 -e参数。这些环境变量将在容器内部可用,应用可以像读取普通环境变量那样读取它们的值。

在Docker容器中查看设置的环境变量,可以使用以下方法:

  1. 在容器外部查看
    如果你想查看容器启动时设置的环境变量,可以使用 docker inspect 命令:

    docker inspect --format='{{range $key, $value := .Config.Env}}{{println $key}}={{println $value}}{{end}}' <容器ID或容器名>
    

    或者只查看某一个环境变量:

    docker inspect --format='{{index .Config.Env "YOUR_VARIABLE"}}' <容器ID或容器名>
    
  2. 在容器内部查看
    若要在容器内部查看环境变量,首先需要进入容器的命令行:

    docker exec -it <容器ID或容器名> /bin/bash
    

    进入容器后,可以直接查看环境变量:

    env
    

    或者查看特定环境变量:

    echo $YOUR_VARIABLE
    

7. --rm

在Docker中, --rm 标志用于在容器停止后自动删除容器。当使用该标志运行容器时,容器停止运行后会立即被删除,释放相关的资源。这对于临时性的容器和一次性任务非常有用,可以避免手动删除容器的麻烦。

8. --network=host

在这里插入图片描述

docker run -d --network=host --name=nginx2  -v  /home/206/nginxhtml:/usr/share/nginx/html    nginx

在Docker中, --network 标志用于指定容器连接的网络模式。以下是一些常见的网络模式及其作用:

  1. bridge (默认模式):在桥接网络中,每个容器都分配了一个IP地址,并且可以通过ip相互访问。这是最常用的网络模式,适用于大多数应用程序。

  2. host :在主机网络模式下,容器与主机共享网络命名空间,即容器使用主机的网络栈。这使得容器可以直接使用主机的网络接口,无需进行端口映射。

  3. none :在无网络模式下,容器不会连接到任何网络。这意味着容器无法通过网络与其他容器或外部进行通信。这种模式适用于某些安全性要求较高的容器。

  4. container:<name|id> :在容器网络模式下,容器与另一个指定容器共享网络命名空间。这意味着两个容器可以通过本地主机进行通信,就像它们在同一主机上一样。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1537360.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode-热题100:17.电话号码的字母组合

题目描述 给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下&#xff08;与电话按键相同&#xff09;。注意 1 不对应任何字母。 示例 1&#xff1a; 输入&#xff1a; digits “23” 输出&a…

2024年【P气瓶充装】复审模拟考试及P气瓶充装操作证考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 P气瓶充装复审模拟考试根据新P气瓶充装考试大纲要求&#xff0c;安全生产模拟考试一点通将P气瓶充装模拟考试试题进行汇编&#xff0c;组成一套P气瓶充装全真模拟考试试题&#xff0c;学员可通过P气瓶充装操作证考试全…

【阿里云物联网】上报设备数据

前言 MQTT客户端上传数据到阿里云服务端&#xff0c;并且能将数据显示出来。在此之前&#xff0c;我们先要懂得阿里云给设备管理划分的概念。首先是产品&#xff0c;所以在产品里要配置内容&#xff0c;产品下的设备才可以使用&#xff0c;比如主题大类都是在产品里面就可以查…

使用 Amazon SageMaker 微调 Llama 2 模型

本篇文章主要介绍如何使用 Amazon SageMaker 进行 Llama 2 模型微调的示例。 这个示例主要包括: Llama 2 总体介绍Llama 2 微调介绍Llama 2 环境设置Llama 2 微调训练 前言 随着生成式 AI 的热度逐渐升高&#xff0c;国内外各种基座大语言竞相出炉&#xff0c;在其基础上衍生出…

I2C芯片24C02/4/8/16(EEPROM)解读

一.原理图 24C01的硬件连接图如下&#xff1a; 二.24C0x系列芯片规格 三.24C0x芯片结构 下面简述EEPROM内部存储结构。 3.1 内部存储结构 根据24C02芯片的Datasheet描述&#xff0c;其内部存储结构应该如下图所示。 其它容量的EEPROM内部结构依此类推。 3.2 地址 3.2.1 器件…

BitMap介绍与应用

文章目录 BitMapBitMap介绍BitMap 结构RoaringBitmap 常见BitMapJava中的BitSetRedis中的BitMapClickHouse中的BitMap BitMap应用案例人群圈选 BitMap 场景一&#xff1a;(大部分开发面试都会遇到的一个问题&#xff09; 有10亿个用户id (int类型)&#xff0c;判断用户是否登…

Vue el-table 合并单元格

一般常见的就是下图这种的单列&#xff0c;上下重复进行合并。 有时候可能也会需要多行多列的合并。 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content&qu…

【LeetCode】--- 动态规划 集训(一)

目录 一、1137. 第 N 个泰波那契数1.1 题目解析1.2 状态转移方程1.3 解题代码 二、面试题 08.01. 三步问题2.1 题目解析2.2 状态转移方程2.3 解题代码 三、746. 使用最小花费爬楼梯3.1 题目解析3.2 状态转移方程3.3 解题代码 一、1137. 第 N 个泰波那契数 题目地址&#xff1a…

FloodFill算法——岛屿数量

文章目录 题目解析算法解析代码解析 题目解析 岛屿数量 题目依旧是熟悉的配方&#xff0c;熟悉的味道&#xff0c;还是那个0还是那个1还是那个二维矩阵&#xff0c;这时候BFS和DFS闻着味就来了&#xff0c;我们来看一下这个题目&#xff0c;这个题目也很容易理解如下图有一个…

阿里云2核4G服务器租用价格和性能测评

阿里云2核4G服务器租用优惠价格&#xff0c;轻量2核4G服务器165元一年、u1服务器2核4G5M带宽199元一年、云服务器e实例30元3个月&#xff0c;活动链接 aliyunfuwuqi.com/go/aliyun 活动链接如下图&#xff1a; 阿里云2核4G服务器优惠价格 轻量应用服务器2核2G4M带宽、60GB高效…

市场复盘总结 20240322

仅用于记录当天的市场情况&#xff0c;用于统计交易策略的适用情况&#xff0c;以便程序回测 短线核心&#xff1a;不参与任何级别的调整&#xff0c;采用龙空龙模式 一支股票 10%的时候可以操作&#xff0c; 90%的时间适合空仓等待 二进三&#xff1a; 进级率中 36% 最常用…

力扣题库27题移除元素(c语言)

解法&#xff1a; int removeElement(int* nums, int numsSize, int val) {int src0,dst0;while(src<numsSize){if(nums[src]val){src;}else{nums[dst]nums[src];src;dst;}}return dst; }

SCI一区 | Matlab实现PSO-TCN-BiGRU-Attention粒子群算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测

SCI一区 | Matlab实现PSO-TCN-BiGRU-Attention粒子群算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测 目录 SCI一区 | Matlab实现PSO-TCN-BiGRU-Attention粒子群算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测预测效果基本介绍模型描述…

visual studio卸载几种方法

1、控制面板卸载&#xff1b; 2、有时候会发现控制面板卸载会失败&#xff0c;无法卸载&#xff0c;这时候要先把下面目录的关于visual studio的都删除&#xff0c;然后重启电脑后&#xff0c;重新安装vs即可。

C语言预编译#pragma宏的作用

在嵌入式编程中&#xff0c;#pragma 指令具有非常重要的作用&#xff0c;因为它允许开发者在不同的编译器之间传达特定的编译指令。由于嵌入式编程通常与硬件紧密相关&#xff0c;且资源有限&#xff0c;这些指令可以帮助开发者更有效地利用可用资源&#xff0c;优化程序&#…

基于python+vue的stone音乐播放器的设计与实现flask-django-php-nodejs

随着我国经济的高速发展与人们生活水平的日益提高&#xff0c;人们对生活质量的追求也多种多样。尤其在人们生活节奏不断加快的当下&#xff0c;人们更趋向于足不出户解决生活上的问题&#xff0c;stone音乐播放器展现了其蓬勃生命力和广阔的前景。与此同时&#xff0c;为解决用…

docker快速安装达梦数据库

docker快速安装达梦数据库 文章目录 docker快速安装达梦数据库前言环境准备下载镜像运行、配置容器 前言 因为公司需要将自己的底代码平台与客户的需求做适配&#xff0c;客户要求必须满足信创要求&#xff0c;使用达梦数据库。所以需要将原有的MySQL数据库与达梦数据库适配&a…

每日五道java面试题之springboot篇(一)

目录&#xff1a; 第一题. 什么是 Spring Boot&#xff1f;第二题. Spring Boot 有哪些优点&#xff1f;第三题. Spring Boot 的核心注解是哪个&#xff1f;它主要由哪几个注解组成的&#xff1f;第四题. 什么是 JavaConfig&#xff1f;第五题. Spring Boot 自动配置原理是什么…

来了,工业5.0

什么是工业5.0 “工业5.0”一词是由欧盟委员会引入和推广的&#xff0c;用于描述其对欧洲工业的愿景。 工业5.0的强调的不仅是技术&#xff0c;更注重是人性。提倡“以人为本”的思想。工业 5.0 不是专注于创造经济价值&#xff0c;而是激励企业探索如何通过提供更健康的工作…

排序算法记录(冒泡+快排+归并)

文章目录 前言冒泡排序快速排序归并排序 前言 冒泡 快排 归并&#xff0c;这三种排序算法太过经典&#xff0c;但又很容易忘了。虽然一开始接触雀氏这些算法雀氏有些头大&#xff0c;但时间长了也还好。主要是回忆这些算法干了啥很耗时间。 如果在笔试时要写一个o(nlogn)的…