一. docker常用的命令

1. docker ps:列出所有的运行的容器

2. docker ps -a: 列出现在和以前运行的容器

3. docker images:列出所有的镜像

4. docker rmi -f 镜像id :删除镜像

5. docker rm 容器id:删除容器

6. docker run :创建并重启容器。

docker -run -d  --name mysql  -e MYSQL_ROOT_PASSWORD=123456  -p 3306:3306  mysql:8.0

持久化数据 + 指定时区(推荐)

docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai -p 3306:3306 -v /my/mysql/data:/var/lib/mysql -v /my/mysql/conf:/etc/mysql/conf.d mysql:8.0

本地路径 /my/mysql/data/my/mysql/conf 可根据实际创建
容器启动后 MySQL 数据将保存在本地,防止容器删掉数据丢失

参数 含义
-d 后台运行容器
--name mysql 容器名称为 mysql
-e MYSQL_ROOT_PASSWORD=123456 设置 root 用户密码
-p 3306:3306 本机 3306 映射到容器 3306 端口
mysql:8.0 使用官方 MySQL 8.0 镜像

7. docker start: 启动已经有的容器。  docker restart :重启容器。

    docker stop 容器id:停止当前正在运行容器。  docker kill 容器id:强制停止当前正在运行的容器。

8. docker logs -f  容器名称:查看容器运行的日志

9. docker exec -it 容器id  /bin/bash :进入容器的内部

10. 容器数据卷:做可持久化操作,将容器内的数据挂在到虚机上面来,防止容器删除,数据丢失

      直接使用命令来挂载 -v

      docker run -it -v  主机目录:容器内目录

      docker run -it -v /home/ceshi:/home centos /bin/bash

二.  如何创建一个镜像

1. 从远程仓库获取   docker pull

2. 从他人那里拷贝

 1) docker save -o mysql.tar mysql   生成压缩包

 2)scp -r 命令拷贝

 3)docker load -i mysql.tar

3. 自己制作dockerfile文件

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

MAINTAINER :镜像谁构建的,作者+邮箱。

LABEL # 现在推荐写 LABEL,代替上面的那个

RUN # 镜像构建的时候需要运行的命令 

CMD # 指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代。

ENTRYPOINT # 指定这个容器启动的时候要运行的命令,可以追加命令

特性/指令 RUN CMD ENTRYPOINT
执行时机 构建镜像时 容器启动时 容器启动时
是否产生新镜像层 ✅ 是 ❌ 否 ❌ 否
是否可被 docker run 参数覆盖 ❌ 不涉及 ✅ 会覆盖 ❌ 只会附加参数
常见用途 安装依赖、配置环境 设置默认命令或参数 固定启动命令

ADD #  拷贝本地的文件或者目录到镜像中。支持自动解压和下载远程文件到本地的目录。

ADD       https://example.com/app.tar.gz    /app/

ADD       app.tar.gz     /app/

COPY # 类似ADD,将我们文件拷贝到镜像中

COPY    ./src    /app/src

WORKDIR # 镜像的工作目录:WORKDIR /app

VOLUME # 挂载的目录

EXPOSE # 保留端口配置   (springboot)8080

ENV # 构建的时候设置环境变量。ENV TZ=Asia/Shanghai \   JAVA_OPTS=""

4. 如何将springboot项目打包成一个docker镜像

   1. 首先将springboot项目打包成一个jar包

   2. 编写一个dockerfile文件

   3. 将生成的jar包和dockerfile文件放在一个目录下面

   4. 通过docker build -t  镜像文件名,生成一个镜像文件

   5. 通过docker run -d --name -p 主机端口:映射容器端口  镜像名称  启动

    

  

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐