初识docker

基础操作

查看镜像列表

docker images

拉取镜像

docker pull  redis

Docker Hub

镜像打包

docker  save  -o  redis.tar  redis:latest

删除镜像

docker rmi redis:latest

导入镜像

docker load -i reids.tar

容器命令

创建并运行一个容器

docker run --name mynginxserver -p 8080:80 -d nginx:6.2.0

docker run --name myredis -p 6379:6379  -d redis redis-server --save 60 1 --loglevel warning

暂停容器运行

docker pause

恢复容器运行

docker unpause

停止容器运行

docker stop  mynginxserver

启动容器

docker start  mynginxserver

查看容器运行日志

docker logs  -f  mynginxserver

查看所有运行的容器和状态

docker ps

查看所有容器

docker ps -a

进入容器执行命令

docker exec  -it  mynginxserver  bash

docker exec -it myredis  redis-cli

删除容器

docker rm  mynginxserver

数据卷

docker volume --help

查看数据卷列表

docker volume ls

创建一个名为html的数据卷

docker volume create html

查看数据卷html具体映射哪个真实文件夹

docker volume inspect html

删除html数据卷

docker volume rm html

清理所有未使用的数据卷

docker volume prune

挂载 数据卷、目录、文件

mysql为例  (-v为挂载命令)

docker run \

--name mysql \

-e MYSQL_ROOT_PASSWORD=123456 \

-p 3306:3306 \

-v  html:/root/html

-v /tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf  \

-v /tmp/mysql/data:/var/lib/mysql \

 -d \

  mysql:5.7.25

进入mysql

docker exec -it mysql mysql -u root -p

自定义镜像

自定义镜像需要自己写一个构建镜像的脚本,脚本大致分为4部分:

(1)基础镜像环境

(2)对基础镜像进行自定义操作

(以配置jdk环境举例,需要在基础镜像里创建jdk目录,将jdk安装包拷贝到基础镜像里,解压安装,配置环境参数等等。。。)

(3)暴露端口

(做这些工作肯定是要对外服务的,一般形式通过端口进行交互)

(4)启动命令

(上面配置好这么多东西,docker启动自定义镜像的时候需要帮你做什么?java项目肯定是要启动java -jar啦)

脚本如下,命名为 Dockerfile ,没有文件后缀名

# 指定基础镜像
FROM ubuntu:16.04
# 配置环境变量,JDK的安装目录
ENV JAVA_DIR=/usr/local

# 拷贝jdk和java项目的包
COPY ./jdk8.tar.gz $JAVA_DIR/
COPY ./docker-demo.jar /tmp/app.jar

# 安装JDK
RUN cd $JAVA_DIR \
 && tar -xf ./jdk8.tar.gz \
 && mv ./jdk1.8.0_144 ./java8

# 配置环境变量
ENV JAVA_HOME=$JAVA_DIR/java8
ENV PATH=$PATH:$JAVA_HOME/bin

# 暴露端口
EXPOSE 8090
# 入口,java项目的启动命令
ENTRYPOINT java -jar /tmp/app.jar

构建命令

docker build -t  javaweb:1.0  .

构成  docker build -t  +  镜像名称 + : + 版本号  + Dockerfile所在文件路径

构建完成后通过 docker images 查看是否生成自定义镜像。

docker既然是基于基础镜像进行构建自定义镜像,那这个基础镜像好像也不一定只能是一个linux系统镜像,比如可以是一个配置好jdk环境的基础镜像,可以是配置好maven、node.js等等的镜像。

以java项目举例,那就不需要像上面一样,每次都用linux系统镜像,安装jdk,再导入jar包,再启动。而是改成了用jdk的基础镜像,导入jar包,再启动

脚本如下,在dockerhub上找一个jdk的基础镜像,然后将你的jar放入进去即可

(一定要注意安全啊,因为看不见基础镜像里到底都有啥,感觉重要的东西还是自己构建镜像好)

# 指定基础镜像
FROM qorzj/java8-alpine:latest
COPY ./docker-demo.jar /tmp/app.jar


# 暴露端口
EXPOSE 8090
# 入口,java项目的启动命令
ENTRYPOINT java -jar /tmp/app.jar

 注意


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值