学习 docker

一:docker环境配置

1.对docker的理解

dockerFile 原材料
dokcer 镜像软件交付品
docker 容器 软件的运行态
dockerFile 面向开发  docker镜像为交付标准 docker容器涉及运维与部署

二:docker 命令

1.docker pull 镜像名

在docker hub 上面找到自己想要的镜像,拉取该镜像
docker search 镜像名称 搜索该镜像
docker rmi -f 删除镜像

2.docker images

查询所有镜像

3.docker [options] run 镜像名

表示运行该镜像创建容器,没有则去docker hub上面 pull 该镜像
docker run -it 镜像ID
	交互方式运行该镜像
docker run -d -p 8080:8080 --name myname 镜像名
options:
-d 后台方式运行容器,并返回容器ID
-p 指定端口映射
-P 随机端口映射
--name 自命名
-i 以交互模式运行容器
-t 为容器重新分配伪输入终端  -it通常一起使用
-v /宿主机绝对路径:/容器内目录  共享目录下的文件
8080(docker开放端口):8080(映射的端口)  端口映射

4.docker ps [options]

-a  查询正在运行的和历史上运行的容器
-l 最近创建的容器
-n 数字 最近创建的n个容器
-q 静默模式 只显示编号

5.docker start 容器id

启动该容器

6.docker logs -f -t --tail 容器id

-t 加入时间戳
-f 跟随最新日志
-- tail 显示最后多少条
tail -f logs 循环显示最新日志

7.docker top 容器id

查看容器内运行的进程

8.docker exec -it 容器id bash

对容器进行交互,在容器中打开新的终端,并可以启动新的进程
docker attach 容器id 在容器中打开新的终端,不可以启动新的进程
docker exec -it 容器id /bin/bash
/bin/bash有时候没用就 /bin/sh

9.docker commit

提交容器副本使之成为一个新的镜像
docker commit -m "提交的描述信息" -a "作者" 容器id 要创建的镜像名:[标签名]

10.docker cp 容器id:容器内路径 目的主机路径

拷贝容器内文件到主机

11.docker inspect 容器id

以json的方式返回容器信息

12.docker history 镜像id

查看镜像dockerfile运行方式

12.docker stop 容器id

停止该容器
docker kill 容器id  强制停止
docker -rm 容器id  删除已经停止的
docker rm -f $(docker ps -a -q)  批量删除已经停止的
docker ps -a | awk '{print $1}'|xargs docker stop  批量停止
docker ps -a | awk '{print $1}'|xargs docker rm  批量删除
docker stop $(docker ps -a -q)  批量停止容器
docker rmi -f $(docker images -q) 批量删除镜像

11.exit

退出
ctrl + p + q 容器不停止退出

12.镜像保存与加载

镜像保存
docker save 镜像名 -o xxx.jar
镜像加载
docker load -i xxx.jar

三.dockerFile

1.编写格式

  1. 每条保留字必须大写且后面必须跟一个参数
  2. 指令从上往下顺序执行
  3. #表示注释
  4. 每条指令创建一个新的镜像层,并对镜像进行提交

2.语法

  1. FROM 基础镜像 :表示当前新的镜像在哪个基础镜像上面运行的
  2. MAINTAINER :基础镜像作者
  3. RUN :容器构建时执行的命令 执行额外的命令
  4. EXPOSE :当前容器对外暴露接口
  5. WORKDIR :指定在创建容器后,终端登录默认所在路径
  6. ENV :在构建镜像过程中设置环境变量
  7. ADD :拷贝文件到目录且解压缩
  8. COPY :拷贝文件到目录
  9. VOLUME :容器数据卷,用于数据保存并持久化
  10. CMD :指定一个容器启动时要运行到命令,可以有多个CMD命令,但只有最后一个生效,会被docker -run 替换
  11. ENTRYPOING : 指定一个容器启动时要运行到命令
  12. ONBUILD :触发器 父镜像被子镜像继承的时候被出发

3.命令

1.docker build

docker build -f 宿主路径文件 -t 自定义镜像名称:版本号 .

2.docker rmi -f $(docker images -q)

删除所有镜像

4 案例

截个图,创建一个通过jar包运行的springboot程序
在这里插入图片描述

dockerfile

FROM java:8
MAINTAINER liuwei1 liuwei1@cloudwalk.cn
ADD merchant-0.0.1.jar /merchant.jar
EXPOSE 9095
ENTRYPOINT ["java", "-jar", "merchant.jar"]

build.sh

sudo docker build -t merchant/merchant-server:latest .

运行命令

1.先将jar包上传到该目录下
2.运行build.sh文件   ./build.sh
3.docker ps -a  搜索与自己将要发布的容器同名的容器
4.docker stop **  停止该容器
5.docker rm ** 删除该容器
6.docker run -d -p 9095:9095 --name merchant-server merchant/merchant-server    运行部署

完善版本

root@member-pay1 ~/dockerfile/merchant-server # ls
application.yml  build.sh  Dockerfile  merchant-0.0.1.jar  merchant-start.sh
root@member-pay1 ~/dockerfile/merchant-server # cat build.sh
sudo docker build -t merchant/merchant-server:latest .
root@member-pay1 ~/dockerfile/merchant-server # cat Dockerfile
FROM java:8
MAINTAINER liuwei1 liuwei1@cloudwalk.cn
ADD merchant-0.0.1.jar /merchant.jar
EXPOSE 9095
ENTRYPOINT ["java", "-jar", "merchant.jar", "--spring.config.location=/application.yml"]
root@member-pay1 ~/dockerfile/merchant-server # cat merchant-start.sh
sudo docker stop merchant-server
sudo docker rm merchant-server
sudo docker run -p 9095:9095 --name merchant-server  -e TZ="Asia/Shanghai" -v ~/dockerfile/merchant-server/application.yml:/application.yml -d merchant/merchant-server:latest

四 ubuntu docker权限配置

sudo groupadd docker
sudo usermod -aG docker $USER
用户名 ALL=NOPASSWD: ALL
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值