Docker基础--> 实战

-d Docker基本命令集合

Docker的基本命令集合包括以下几类,我会为每个命令提供详细说明:

1. 镜像相关命令:
# docker pull:从镜像仓库中拉取或者更新指定镜像
docker pull ubuntu:latest
   
# docker images:列出本地所有镜像
docker images

# docker rmi:删除本地一个或多个镜像
docker rmi image_id

# docker build:从Dockerfile构建镜像
docker build -t myimage:tag .

# docker tag:标记本地镜像,将其归入某一仓库
docker tag image username/repository:tag

2. 容器相关命令:
# docker run:创建一个新的容器并运行一个命令
docker run -it ubuntu /bin/bash

# docker start:启动一个或多个已经被停止的容器
docker start container_id

# docker stop:停止一个运行中的容器
 docker stop container_id

# docker restart:重启容器
docker restart container_id

# docker rm:删除一个或多个容器
docker rm container_id

# docker ps:列出容器
docker ps(运行中的容器),docker ps -a(所有容器)

3. 容器操作命令:
# docker exec:在运行的容器中执行命令
docker exec -it container_id /bin/bash

# docker attach:连接到正在运行中的容器
docker attach container_id

# docker logs:获取容器的日志
docker logs container_id

# docker cp:在本地和容器之间复制文件/文件夹
docker cp /host/path container_id:/container/path

4. 系统和信息命令:
# docker info:显示 Docker 系统信息,包括镜像和容器数
docker info

# docker version:显示 Docker 版本信息
docker version

# docker inspect:获取容器/镜像的元数据
docker inspect container_id

5. 网络相关命令:
# docker network create:创建一个网络
docker network create my-net

# docker network ls:列出网络
docker network ls

# docker network connect:将容器连接到网络
docker network connect my-net container_id

6. 数据卷相关命令:
# docker volume create:创建一个数据卷
docker volume create my-vol

# docker volume ls:列出数据卷
docker volume ls

# docker volume rm:删除数据卷
docker volume rm my-vol

7. Docker Compose 命令:
# docker-compose up:创建并启动所有服务
docker-compose up

# docker-compose down:停止并删除所有服务
docker-compose down

# docker-compose ps:列出 Compose 定义的所有服务状态
docker-compose ps

这些是 Docker 的基本命令集合,涵盖了日常使用 Docker 时最常用到的操作。每个命令都有多个可选参数,可以通过 `docker command --help` 查看详细用法。

从无到有创建发布一个tomcat

# 拉取镜像
docker pull tomcat 

# 运行tomcat镜像为一个新容器
#-it: 以交互模式运行容器,通常用于需要在控制台与容器进行交互的情况。
#-p 8000:8080: 将主机的8000端口映射到容器的8080端口,允许通过主机的8000端口访问容器内的Tomcat服务。
docker run -it -p 8000:8080 tomcat

# 列出当前正在运行的Docker容器的信息,包括容器ID、镜像、命令、创建时间、状态和端口映射等
docker ps
CONTAINER ID   IMAGE                 COMMAND                  CREATED              STATUS              PORTS                                       NAMES
b2d7564f958a   tomcat                "catalina.sh run"        About a minute ago   Up About a minute   0.0.0.0:8000->8080/tcp, :::8000->8080/tcp   gracious_grothendieck

# 以交互模式在名为b2d7564f958a的容器内执行/bin/bash命令,进入容器的Shell终端
docker exec -it b2d7564f958a /bin/bash

# 在当前工作目录下,将webapps.dist目录下的所有文件和子目录复制到webapps目录中。
cp -r webapps.dist/* webapps

# 基于容器b2d7564f958a创建一个新的镜像:
# -a="qiaowei": 指定作者为qiaowei。
# -m="add webapps app": 添加提交的描述信息为"add webapps app"。
# b2d7564f958a: 要提交的容器ID。
# tomcat01:1.0: 新镜像的名称和标签,此处为tomcat01的版本1.0
docker commit  -a="qiaowei" -m="add webapps app" b2d7564f958a tomcat01:1.0

# 查看所有镜像
docker images

REPOSITORY            TAG       IMAGE ID       CREATED          SIZE
tomcat01              1.0       604a6e054aac   20 seconds ago   684MB

创建并持久化数据库

//获取镜像
docker pull mysq1:5.7

运行容器,需要做数据挂载!#安装启动mysq1,需要配置密码的,这是要注意点!
官方测试:
dockerrun--namesome-mysql-eMYSQL_R00T_PASSWORD=my-secret-pw -d mysql:tag

启动我们的
-d 后台运行
-p 端口映射
-v 卷挂载
-e 环境配置
--name 容器名字
docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v
/home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root --name mysq1 mysql:5.7
启动成功之后,我们在本地使用sqlyog来接测试一下
sqlyog-连接到服务器的3310----3310和容器内的3306映射,这个时候我们就可以连接上了

Dockerfile文件格式命令

FROM #基础镜镜像,一切从这里开始构建

MAINTAINER  #镜像是谁写的,姓名+邮箱
RUN  #镜像构建的时候需要运行的命令
ADD  #步骤:tomcat镜像,这个tomcat压缩包!添加内容

WORKDIR  #镜像的工作目录
VOLUME   # 挂载的目录
EXPOSE   #暴露端口配置
CMD      #指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代
ENTRYPOINT   #指定这个容器启动的时候要运行的命令,可以追加命令

ONBUILD  #当构建一个被继承DockerFile这个时候就会运行 ONBUILD的指令。触发指令。
COPY  #类似ADD,将我们文件拷贝到镜像中
ENV  #构建的时候设置环境变量

将打包的jar包 通过dockerfile创建镜像,并运行创建的镜像

# 当前目录下需要有必备的文件
ls
Dockerfile  my-app.jar

# Dockerfile  文件配置,my-app.jar为打包的jar包
cat Dockerfile

FROM java:8
COPY *.jar /app.jar
CMD ["--server.port=8889"]
EXPOSE 8889
CMD ["java", "-jar", "/app.jar"]

# 再执行构建镜像
docker build -t booksystem-backend .    

-t :booksystem-backend: -t 参数用于给构建的镜像指定一个标签(tag),这里将镜像命名为 booksystem-backend。
. :表示 Docker 在当前目录下查找 Dockerfile 文件来进行构建。这个点号 (.) 是当前目录的简写符号。

# 构建完查询镜像                                                                                                                                           
docker images

# 运行创建的镜像 
docker run -d -P --name booksystem-backend-web booksystem-backend

# -d: 表示在后台(detached mode)运行容器,即使终端关闭也能继续运行。
# -P: 将容器内部使用的网络端口映射到随机端口。Docker 会随机选择一个未使用的端口,将容器内部服务的端口映射到宿主机的随机端口上。

docker run -d -p 8080:80 --name booksystem-backend-web booksystem-backend
#-p 8080:80 将主机(宿主机)的 8080 端口映射到容器内部的 80 端口。这意味着,当你访问主机的 8080 端口时,请求将被转发到容器的 80 端口,这通常用于将容器内部服务暴露给外部网络。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值