首页 > 其他分享 >Docker常用命令

Docker常用命令

时间:2024-09-25 16:50:12浏览次数:3  
标签:容器 -- 端口 ID 常用命令 镜像 Docker docker

Docker常用命令

1.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

拉取最新版 mysql

运行镜像 ----咱拉取一个tomcat 跑起来试一试

docker run 镜像名docker run 镜像名:Tag

ex:

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 镜像保存在哪个位置与名字

exmaple:

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.运行一个容器

-it 表示 与容器进行交互式启动

-d 表示可后台运行容器 (守护式运行)

--name 给要运行的容器 起的名字

/bin/bash 交互路径

必须练习:

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

例如我们要启动一个redis 把它的别名取为redis001 并交互式运行 需要的命令 —我这里指定版本号为5.0.5

#1. 拉取redis 镜像

docker pull redis:5.0.5

#2.命令启动

docker run -it  --name redis001 redis:5.0.5 /bin/bash

#3.查看已运行容器

docker ps

4.停止容器

# 先停止咱之前运行的 redis 容器

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> 命令来查看容器的映射端口。

总结来说, -p 选项允许你手动指定容器和主机的端口映射关系,而 -P 选项则是自动将容器的所有暴露的端口映射到主机的随机端口上。

7.进入容器

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

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

#进入 前面的 nginx容器   
docker exec -it nginx01 /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 1.txt mycontainer:/1.txt

#从容器里面拷贝文件/目录到本地一个路径

docker cp 容器名称或id:/container_path to_path  
例如:
docker cp tomcat:usr/local/tomcat/README.md ./

14.查看容器日志

-f 参数跟踪日志

--tail=要查看末尾多少行

docker logs -f --tail=5 容器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 宿主机文件存储位置:容器内文件位置

Nginx实例:

17.更换容器名

想给容器换个霸气炫酷吊炸天的名字?

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

18.自己提交一个镜像

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

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

6.环境变量

docker run -d -e name=heimi -e girl=canglaoshi nginx

7. --rm

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

8. --network=host

docker run -d --network=host 
--name=nginx  -v  /opt/wms-web/:/usr/share/nginx/html/  nginx

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

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

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

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

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

这些网络模式可以根据具体的应用场景和需求进行选择和配置。

标签:容器,--,端口,ID,常用命令,镜像,Docker,docker
From: https://blog.csdn.net/zhzjn/article/details/142527357

相关文章

  • Linux常用命令(Mysql)
    --删除表内数据(Mysql)usedc;#切换到待删除表所在的数据库truncatetable[表名]#删除表--数据库导入SQL文件数据(Mysql)sourcea.sql;--SQL增删改查insertintostudent(id,name,sex,birth)values('01','赵雷','男','1990');deletefromstudentwhereid=......
  • Docker 运行 MongoDB
    Docker运行MongoDB实验环境宿主机:CentOSStreamrelease9Docker:DockerEngine27.3.1MongoDB:7.0.14Mongosh;2.3.1配置文件mongod.conf[karma@localhostkarmamongodb]$catmongod.conf|grep-vE"#|^$"storage:dbPath:/var/lib/mongodbsystemLog:des......
  • docker compose-批量容器编排
    第八章dockercompose三步骤:1.Dockerfile保证我们的项目在任何地方可以运行。2.services什么是服务。docker-compose.yml这个文件怎么写。3.启动项目作用:批量容器编排。compose是docker开源项目,需要安装!Dockerfile让程序在任何地方运行。web服务。redis、MySQL、nginx...多个容器......
  • docker笔记_数据卷、挂载
    docker数据存储概述数据卷(Volumes)特点操作绑定挂载(BindMounts)内存挂载(tmpfs)总结概述镜像构建过程中,所产生的layer都是只读层,只有在创建容器时才会生成一个可写的容器层(contatnerlayer)。如下图:在默认情况下,容器内部创建的所有文件都存储在可写层中。这导致:获取......
  • ADD failed: file not found in build context or excluded by .dockerignore: stat i
    这个错误信息表明在构建Docker镜像时,Docker守护进程(daemon)在尝试将名为 irap_rule_center 的文件或目录添加到镜像中,但是没有在构建上下文(buildcontext)中找到这个文件或目录,或者这个文件或目录被 .dockerignore 文件忽略了。要解决这个问题,你可以按照以下步骤操作:检查文件......
  • Cannot open self /usr/local/bin/docker-compose or archive /usr/local/bin/docker-
    安装docker-compose时候。出现错误1、在线拉取太费劲。最后使用的离线安装、、参考内容。.github手动下载文件:https://github.com/docker/compose/releases/tag/1.25.0-rc4选择-86版本的内容将文件上传到/usr/local/bin/目录下,重命名为docker-compose,修改文件权限:chmod+x......
  • 【随手记录】docker部署jenkins,集成maven、spring项目
    1、下载镜像文件到服务器dockerpulljenkins/jenkins:lts-jdk17或离线导入镜像:dockerload-ijenkins-lts-jdk17检查镜像是否导入:dockerimages|grepjenkinsjenkins/jenkinslts-jdk177a7add0bf3da2weeksago470MB2024年6月以后国内很多大型的Dock......
  • 828华为云征文 | 华为云X实例部署Docker应用的性能评测优化与实践指南
    目录1.前言2.测试环境设置2.1硬件与软件配置2.2网络环境与带宽2.3测试应用介绍3.Docker及应用的安装部署步骤3.1安装Docker3.2使用Docker部署Elasticsearch3.3使用Docker部署MySQL3.4使用Docker部署Nginx4.性能测试与评测标准4.1资源占用分析4.2网......
  • Docker Desktop (WSL)部署MySQL使用Navicat 16 for MySQL远程连接
    DockerDesktop(WSL)部署MySQL使用Navicat16forMySQL远程连接1.docker拉取镜像dockerpullmysql2.查看镜像dockerimages3.启动MySQL实例dockerrun-d-p3307:3306--name=mysql-eMYSQL_ROOT_PASSWORD=123456mysql命令详解参数详解-d在后台运行容......
  • 在windows上使用docker创建mysql数据库
    可以以下步骤在Windows上使用Docker创建MySQL数据库:安装Docker:确保Windows上已安装DockerDesktop。拉取MySQL镜像:打开终端,运行以下命令:dockerpullmysql启动MySQL容器:使用以下命令启动一个MySQL容器(替换your_password为你的密码):dockerrun--namemysql-container......