Docker常用命令

Docker常用命令

1.1 基础命令

systemctl start docker --启动docke
systemctl stop docker  --关闭docker
systemctl restart docker --重启docker
systemctl enable docker --docker设置随服务启动而自启动 
systemctl status docker --查看docker 运行状态
docker version --查看docker 版本号信息
docker info --查看docker详细信息
docker --help --查看docker帮助信息
docker pull [optins] 拉取架包

镜像命令

2.1 搜索镜像

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

2.2 拉取镜像

docker pull 镜像名  -- 拉取指定的镜像
docker pull 镜像名:tag --加上tag表示拉取指定版本的镜像 
不加tag(版本号) 即拉取docker仓库中 该镜像的最新版本latest 加:tag 则是拉取指定版本
docker run 镜像名  --运行镜像
docker run 镜像名:Tag  --运行指定版本的镜像
例:docker pull tomcat
例:docker run tomcat

2.3 删除镜像

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

2.4 保存镜像

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

docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字
例:docker save tomcat -o /myimg.tar

2.5 加载镜像

--任何装 docker 的地方加载镜像保存文件,使其恢复为一个镜像
docker load -i 镜像保存文件位置
docker tag   原容器id 新容器名:版本号 --然后通过tag打标签

容器命令

3.1 容器命令

docker ps --查看正在运行容器列表 
docker ps -a --查看所有容器 -----包含正在运行 和已停止的

3.2 运行容器

参数
-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

3.3 停止容器

docker stop 容器名/容器ID

3.4 删除容器

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

3.5 容器端口与服务器端口映射

-p 宿主机端口:容器端口   (注意是小写的p)
-P 宿主机随机端口:容器端口  (注意是大写P)
例:
docker run -d --name nginx01 -p 9090:80  nginx
docker run -d --name nginx02 -p 9091:80  nginx

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

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

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

3.6 进入容器

docker exec -it 容器名/容器ID /bin/bash
docker exec -it nginx01 /bin/bash --#进入 前面的 nginx容器   

3.7 退出容器

从容器内 退出到自己服务器中 需注意 两个退出命令的区别

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

3.8 停止容器

docker stop 容器ID/容器名

3.9 重启容器

docker restart 容器ID/容器名

3.10 启动容器

docker start 容器ID/容器名

3.11 kill容器

kill 容器

3.12容器文件拷贝

docker cp 命令用于在容器和本地文件系统之间复制文件/文件夹。

docker cp foo.txt mycontainer:/foo.txt -- 第一个为虚拟机上的文件,第二个为容器中的文件

docker cp name:/container_path to_path  
例如:
docker cp tomcat:usr/local/tomcat/README.md ./

3.13 查看容器日志

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

3.14 容器自动重启

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

docker run -d  -p 8888:6379 --restart=always --name redis002 nginx:latest/bin/bash

3.15 数据挂载

简单来讲,就是将容器内的数据与外部宿主机文件绑定起来,类似一个双持久化,当容器删除时,宿主机文件数据目录仍在,下次启动容器只要将数据目录指向宿主机数据所在位置即可恢复!

-v 宿主机文件存储位置:容器内文件位置 -v 宿主机文件存储位置:容器内文件位置 -v 宿主机文件存储位置:容器内文件位置

3.15.1 挂载数据库

docker run -d  -p 3305:3306 --restart=always --name mysql-test -v /home/cyz23:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql

3.15.2 挂载nginx

docker run -d -p 9090:80 -v /cyz23/nginx:/usr/share/nginx/html      nginx
自己虚拟机中的位置,冒号后边为固定的nginx位置。

3.16 更换容器名

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

3.17 自己提交一个容器

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

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

扩展内容

4.1 环境变量

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

4.2 --rm

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

4.3 --network=host

4.4 docker 镜像和容器的区别

Docker容器是轻量级的,共享操作系统内核,⽐虚拟机启动更快。⽽虚拟机则模拟整个操作系
统,在⼀个物理机器上运⾏多个操作系统实例。

打包后端项目

1.给自己的项目打架包,注意MySql数据库的版本和连接数据的信息,连接端口需要用本机的ip地址代替localhost,同时,使用Navicat管理工具也需要使用本机的ip地址,这样兼容性更强。

spring.datasource.url=jdbc:mysql://192.168.14.37:3309/wms-demo?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&allowMultiQueries=true

image.png

  1. 打包完毕后,拉取架包到虚拟机(宿主机中),然后配置dockerfile文件,设置打包方式,注意JDK的版本。
 FROM openjdk:8

# 设置工作目录
WORKDIR /workspace

# 复制应用程序文件到容器中
# COPY ./wms-app-0.0.1-SNAPSHOT.jar  /workspace/app.jar
ADD wms-app-0.0.1-SNAPSHOT.jar  app.jar

# 设置环境变量
# ENV JAVA_HOME=/usr/local/openjdk-11
# ENV PATH=$PATH:$JAVA_HOME/bin

# 配置容器暴漏的端口
EXPOSE 8080

# 编译Java应用程序
RUN cd /workspace && ls

# java App
ENTRYPOINT  ["java","-jar","app.jar"]
  1. 然后进入到与架包相应的位置,使用 build 和 run 命令进行构建架包并运行架包。
docker build -t mall:v1 .  --打包镜像
docker run -it --rm beimao:v1 --运行镜像
  1. 然后测试端口即可。
  2. 注意:需要关闭防火墙,关闭虚拟机中的防火墙,必要时重启docker,同时需要设置mysql的host端口号根据% 查找信息, 同时mysql中的host的root 也需要设置%。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值