docker镜像、容器 常用命令,容器端口映射

news2025/1/12 8:54:33

文章目录

  • 前言
  • 一、docker基础命令
  • 二、docker镜像命令
    • 1、docker images:列出本地主机的镜像
    • 2、 docker search :查看镜像
    • 3、docker pull:拉取镜像
    • 4、docker rmi : 删除docker镜像
  • 三、docker容器命令
    • 1、环境准备
    • 2、运行容器
    • 3、启动、停止、重启容器
    • 4、查看容器日志
    • 5、进入容器
  • 四、容器端口映射
    • 1、tomcat端口映射案例
  • 五、Docker 容器与宿主服务器文件复制

前言

当看到此篇文章时,你应该已经搭建好了docker环境了吧?如果没有,请移步另一个博客:docker的安装和设置镜像加速

一、docker基础命令

docker --version   查看版本号
systemctl start docker  启动docker
systemctl daemon-reload  守护进程重启
systemctl restart docker  重启docker
docker service docker stop  关闭docker
docker stats 查看docker占用的内存

守护进程:在docker中,守护进程用于监控指定的进程,当发现目标进程工作异常时,可以对该目标进程进行控制

二、docker镜像命令

docker镜像好比是一个模版,可以通过这个模版来创建容器服务,通过这个镜像可以创建多个容器
容器与容器之间相互是隔离的。

1、docker images:列出本地主机的镜像

docker images  列出本地主机的镜像

在这里插入图片描述
REPOSITORY:表示镜像的仓库源
TAG:镜像的标签
IMAGE ID:镜像id
CREATED:镜像创建时间
SIZE:镜像大小

2、 docker search :查看镜像

docker search xxxx  查看某个服务的镜像是否存在
docker search --limit 5 mysql  查看mysql服务的镜像,且只列出5个
docker search mysql --limit  4 --no-trunc   查看mysql服务的镜像,且只列出4个,拦截信息不会被截断(展示完整信息)
docker search mysql  --filter is-official=true  查看mysql服务的镜像,根据官方镜像过滤

在这里插入图片描述
NAME:镜像仓库源的名称
DESCRIPTION: 镜像的描述
OFFICIAL:是否 docker 官方发布。如果是官方镜像,显示 “OK”
stars:类似 Github 里面的 star,表示点赞、喜欢的意思
AUTOMATED:自动构建。如果是自动化构建,显示“OK”

3、docker pull:拉取镜像

Docker Hub地址:https://hub.docker.com/_/

在这里插入图片描述
在这里插入图片描述

docker pull xxx    下载镜像
docker pull mysql  从Docker Hub里,下载mysql最新的镜像
docker pull -a mysql 从Docker Hub下载REPOSITORY为mysql的所有镜像
docker pull mysql:5.7 从Docker Hub下载tag为5.7的mysql镜像

在这里插入图片描述

4、docker rmi : 删除docker镜像

docker rmi id/名字  删除docker镜像
docker rmi c20987f18b13  删除我本地的mysql镜像,根据镜像id删除
docker rmi mysql   删除我本地的mysql镜像,根据镜像名字删除
docker rmi -f mysql 强制删除mysql镜像
docker rmi -f nginx mysql  同时删除我本地的nginx、mysql镜像

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、docker容器命令

1、环境准备

docker pull tomcat# 先拉取一个centos镜像

2、运行容器

docker run --name container-name -d image-name:tag  运行容器
docker run --name tomcat_ -d tomcat  通过tomcat镜像,生成名为:tomcat_的容器

–name:自定义容器名
-d:表示后台运行
image-name:指定运行的镜像名称
tag:镜像的版本
在这里插入图片描述

3、启动、停止、重启容器

docker ps -a  先查看所有容器信息

在这里插入图片描述
CONTAINER ID: 容器 ID。

IMAGE: 使用的镜像。

COMMAND: 启动容器时运行的命令。

CREATED: 容器的创建时间。

STATUS: 容器状态。

docker start id  根据容器id启动容器   
docker start 1d13832397e6  启动我本地的tomcat_容器
docker start name  根据容器名字启动容器
docker start tomcat_  启动我本地的tomcat_容器
docker restart id/name 根据容器id或者容器名字重启容器
docker restart tomcat_ 重启我本地的tomcat_容器
docker stop id/name 停止容器
docker kill id/name 停止容器
docker stop tomcat_  / docker kill tomcat_  停止我本地的tomcat_容器

在这里插入图片描述

4、查看容器日志

docker logs id/name 查看容器日志
docker logs tomcat_ 查看tomcat_容器的日志

在这里插入图片描述

5、进入容器

docker exec -it 容器名字/容器id  /bin/bash  进入容器
docker exec -it tomcat_ /bin/bash  进入tomcat_容器内

四、容器端口映射

docker run --name 容器名字 -d 镜像名字:tag:单纯的如此运行容器,程序占用的是 Docker 容器内部的端口,并不是服务器对外的访问端口,所以必须做 端口映射 将服务器的实际端口映射到 Docker 容器中的端口才能访问。

在这里插入图片描述

docker run --name 容器名字:tag -d -p 服务器端口:Docker端口 image-name  端口映射

–name:自定义容器名,不指定时,docker 会自动生成一个名称

-d:后台运行容器

-p: Linux 服务器与 Docker 容器的端口映射,默认情况下容器中镜像占用的端口是 Docker 容器中的端口,与外界是隔绝的,必须进行端口映射才能访问。

image-name:指定运行的镜像名称以及 Tag

1、tomcat端口映射案例

[root@iZm5e8w23bqasdqw00wz524Z ~]# docker pull tomcat
Using default tag: latest
latest: Pulling from library/tomcat
0e29546d541c: Pull complete 
9b829c73b52b: Pull complete 
cb5b7ae36172: Pull complete 
6494e4811622: Pull complete 
668f6fcc5fa5: Pull complete 
dc120c3e0290: Pull complete 
8f7c0eebb7b1: Pull complete 
77b694f83996: Pull complete 
0f611256ec3a: Pull complete 
4f25def12f23: Pull complete 
Digest: sha256:9dee185c3b161cdfede1f5e35e8b56ebc9de88ed3a79526939701f3537a52324
Status: Downloaded newer image for tomcat:latest
docker.io/library/tomcat:latest
[root@iZm5e8w23bqasdqw00wz524Z ~]# docker run --name tomcat1 -d -p 9001:8080 tomcat
c7ea8efea19f4fdde6ff63a1cd21ad4c329592ec55a90713ee75fa1f4e5e2ae6
[root@iZm5e8w23bqasdqw00wz524Z ~]# docker exec -it tomcat1 /bin/bash
root@c7ea8efea19f:/usr/local/tomcat# ls -l
total 160
-rw-r--r-- 1 root root 18994 Dec  2 22:01 BUILDING.txt
-rw-r--r-- 1 root root  6210 Dec  2 22:01 CONTRIBUTING.md
-rw-r--r-- 1 root root 60269 Dec  2 22:01 LICENSE
-rw-r--r-- 1 root root  2333 Dec  2 22:01 NOTICE
-rw-r--r-- 1 root root  3378 Dec  2 22:01 README.md
-rw-r--r-- 1 root root  6905 Dec  2 22:01 RELEASE-NOTES
-rw-r--r-- 1 root root 16517 Dec  2 22:01 RUNNING.txt
drwxr-xr-x 2 root root  4096 Dec 22 17:07 bin
drwxr-xr-x 1 root root  4096 Apr 11 10:44 conf
drwxr-xr-x 2 root root  4096 Dec 22 17:06 lib
drwxrwxrwx 1 root root  4096 Apr 11 10:44 logs
drwxr-xr-x 2 root root  4096 Dec 22 17:07 native-jni-lib
drwxrwxrwx 2 root root  4096 Dec 22 17:06 temp
drwxr-xr-x 2 root root  4096 Dec 22 17:06 webapps
drwxr-xr-x 7 root root  4096 Dec  2 22:01 webapps.dist
drwxrwxrwx 2 root root  4096 Dec  2 22:01 work
root@c7ea8efea19f:/usr/local/tomcat# exit
exit
[root@iZm5e8w23bqasdqw00wz524Z~]# 
docker pull tomcat  拉取tomcat镜像
docker run --name tomcat1 -d -p 9001:8080 tomcat docker端口8080映射外部端口9001
docker tomcat1 exec -it /bin/bash  进入tomcat容器内
ls -l   查看目录结构

可以看到,进入tomcat1容器内,如同是在本地进入安装程序的根目录下一样,进去后可以执行 linux 命令。同样,可以通过exit命令(或者是ctrl+D)来退出。

五、Docker 容器与宿主服务器文件复制

cd /home  我先进入到根目录
touch 11.txt    创建了一个11.txt文件
docker cp /home/11.txt tomcat1:/home/11.txt  将宿主机的11.txt文件,复制到tomcat1容器的home目录下
docker exec -it tomcat1 /bin/bash  进入tomcat1容器内
cd /home  进入tomcat1容器的home目录
ls     查看当前目录下的文件
[root@iZm5e8w23bqasdqw00wz524Z /]# cd /home
[root@iZm5e8w23bqasdqw00wz524Z home]# touch 11.txt
[root@iZm5e8w23bqasdqw00wz524Z home]# docker cp /home/11.txt tomcat1:/home/11.txt
[root@iZm5e8w23bqasdqw00wz524Z  home]# docker exec -it tomcat1 /bin/bash
root@c7ea8efea19f:/usr/local/tomcat# cd /home
root@c7ea8efea19f:/home# ls
11.txt
root@c7ea8efea19f:/home# 

docker cp 宿主机路径/11.txt tomcat1:容器路径/11.txt 将宿主机的11.txt文件,复制到tomcat1容器的home目录下

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

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

相关文章

Python常见工厂函数用法

工厂函数:能够产生类实例的内建函数。 工厂函数是指这些内建函数都是类对象, 当调用它们时,实际上是创建了一个类实例。 Python中的工厂函数举例如下: int(),long(),float(),complex(),bool()aint(9.9) a 9 blong(45) b 45L ff…

JavaScript 虚拟键盘:Mindfusion JavaScript Keyboard

高度交互,高度可定制--JavaScript 虚拟键盘--Mindfusion JavaScript Keyboard 现在,您的 JavaScript 应用程序可以像本地移动应用程序一样处理屏幕输入。 特征 键盘布局 扩展、紧凑和标准布局模式。KeyboardLayout 工具可帮助您根据需要创建和排列自定义…

【Hack The Box】linux练习-- Traverxec

HTB 学习笔记 【Hack The Box】linux练习-- Traverxec 🔥系列专栏:Hack The Box 🎉欢迎关注🔎点赞👍收藏⭐️留言📝 📆首发时间:🌴2022年11月21日🌴 &#x…

Spark学习(5)-Spark Core之RDD

1 RDD详解 1.1 为什么需要RDD 分布式计算需要: 分区控制Shuffle控制数据存储\序列化\发送数据计算API等一系列功能 这些功能, 不能简单的通过Python内置的本地集合对象(如 List\ 字典等)去完成。我们在分布式框架中, 需要有一个统一的数据抽象对象, 来实现上述分布式计算所需…

JavaScript面向对象:类的继承

继承 现实中的继承:子承父业,比如我们都继承了父亲的姓。 程序中的继承:子类可以继承父类的一些属性和方法。 语法: class Father{ // 父类 } class Son extends Father { // 子类继承父类 } 实例: cla…

手把手教你开通小程序流量主

手把手教你开通小程序流量主 开通条件是累计独立访客不低于 1000。也就是1000级以上,其实这个不难。 接下来以防火安全知识专项学习与竞答为例,写一篇开通流量主、创建广告和代码嵌入的图文教程。 功能介绍 广告展示位置灵活控制,接入简单…

操作系统复习【面试】

操作系统复习【面试】前言推荐操作系统复习第一章 操作系统引论 11.3 操作系统的基本特性 141.3.1 并发1.3.2 共享1.3.3 虚拟1.3.4 异步1.4 操作系统的主要功能 171.4.1 处理机管理功能1.4.2 存储器管理功能1.4.3 设备管理功能1.4.4 文件管理功能1.4.5 操作系统和用户之间的接口…

目标管理利器OKR-给被各大APP抢占使用时长的你

今天聊聊好用的时间和目标管理利器OKR,给被各大APP抢占使用时长的你。 1、海龟的秘密 一个游泳健将,他发现自己竟然游不过一只海龟,这让他疲惫不堪,又失望,又难堪。 然后他又去不断观察,终于发现了海龟游…

数据结构之队列

文章目录前言一、队列二、队列应该如何实现顺序表or链表扩展了解三、队列的实现1.队列的声明2.接口(声明)3.接口的实现创建一个新的节点判断队列为空队头元素入队出队销毁队列注意:4.主函数(测试)四、相关习题总结前言…

【C++基础】友元

友元 定义:类的特点是私有成员无法在作用域外访问,而友元函数是特权函数,允许访问私有成员。 语法:在函数或类前加friend。 例子:在message中,published每个人都可访问,secret只有自己可以访问…

开放经济中的货币-中国视角下的宏观经济

开放经济中的货币 – 潘登同学的宏观经济学笔记 文章目录开放经济中的货币 -- 潘登同学的宏观经济学笔记汇率:复习外汇冲销下的可能三角中国的811汇改国际货币体系的现在与未来当前国际货币体系存在三个主要问题体系具有内生不稳定性美元的中心地位带来了不平等非对…

[附源码]java毕业设计校园博客系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

树莓派快速上手-远程调试图形界面

0 简述 前面的文章里介绍过通过ssh在局域网或者远程访问树莓派,一般而言,对于非图形界面的开发仅通过ssh命令行交互就能够完成的,但是要开发图形界面展示或交互的应用时,光命令行交互的方式就远远不够了。这篇文章将针对树莓派这…

Conformer测试问题

https://github.com/pengzhiliang/Conformer 抽空测试了conformer,训练起来很简单,但是会遇到一个问题: Loss is nan, stopping training 我用的默认配置,不知道为什么会有这个问题,知道的来探讨下。 1.数据准备 我…

华为机试 - 最长连续子序列

目录 题目描述 输入描述 输出描述 用例 题目解析 算法源码 题目描述 有N个正整数组成的一个序列。给定整数sum,求长度最长的连续子序列,使他们的和等于sum,返回此子序列的长度, 如果没有满足要求的序列,返回-1…

【Hack The Box】Linux练习-- Mirai

HTB 学习笔记 【Hack The Box】Linux练习-- Mirai 🔥系列专栏:Hack The Box 🎉欢迎关注🔎点赞👍收藏⭐️留言📝 📆首发时间:🌴2022年11月17日🌴 &#x1f36…

元宇宙技术在几年后质变,迎来体验终端世界

京东集团高级副总裁、京东探索研究院院长陶大程京东集团高级副总裁、京东探索研究院院长陶大程是京东“产业元宇宙”的提出者和构建者。他谈到,希望通过构建元宇宙供应链降低实体经济参与数字经济的门槛,帮助实体经济完成数实融合的商业转型,…

设计模式复习题

1.选择题 1.在观察者模式中,表述错误的是(C )C.观察者可以改变被观察者的状态,再由被观察者通知所有观察者依据被观察者的状态进行。 2.对于违反里式代换原则的两个类,可以采用的候选解决方案错误的是: ( D )D.以上方…

斗鱼发布Q3财报:连续三个季度收入下滑,市值年初至今缩水五成

11月21日,斗鱼(NASDAQ:DOYU)发布2022年第三季度财务报告。 财报显示,斗鱼2022年第三季度的营收为17.98亿元,同比减少23.4%;净亏损660万元,2021年同期为亏损1.435亿元;调整后净利润为…

面向对象编程·上

面向对象编程上1.包1.1导入包中的类1.2静态导入1.3将类放到包中1.4包的访问权限控制 - [只能在当前包当中使用]1.5常见的系统包2.继承2.1背景2.2语法规则2.2.1super[不能出现在静态方法当中]作用总结 父类对象的引用2.3protected 关键字2.4更复杂的继承关系2.5final 关键字2.6组…