Docker使用

1. 安装虚拟机:

VMWARE

注册中心:https://hub.docker.com/

Docker 安装:

(1)yum 包更新到最新
sudo yum update
(2)安装需要的软件包, yum-util 提供yum-confifig-manager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

配置仓库:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

(3)设置yum源为阿里云(配置成功,可以省略该步骤)
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-
ce/linux/centos/docker-ce.repo

(4)安装docker(社区版)
sudo yum install docker-ce
如果报错(记得先尝试安装)
修改配置:
sudo vim /etc/yum.repos.d/docker-ce.repo
通过命令把Q替换为http://mirrors.aliyun.com/docker-ce
命令如下::%s#https://download-stage.docker.com#http://mirrors.aliyun.com/docker-ce#g
再执行docker的安装命令即可安装成功。

(5)安装后查看docker版本
docker -v

2.2 设置ustc的镜像(加速)

ustc是老牌的linux镜像服务提供者了,还在遥远的ubuntu 5.04版本的时候就在用。ustc的docker镜像加速器速度
很快。ustc docker mirror的优势之一就是不需要注册,是真正的公共服务。
https://lug.ustc.edu.cn/wiki/mirrors/help/docker
编辑该文件:
在该文件中输入如下内容:
vi /etc/docker/daemon.json
{
“registry-mirrors”: [“https://docker.mirrors.ustc.edu.cn”]
}
启动docker
systemctl start docker

2.3 容器的创建和操作
  1. 守护式方式创建容器:
    docker run -di --name=容器名称 镜像名称:标签

启动容器
docker start 容器名称

进入容器内部
docker exec -it 容器名称 /bin/bash

停止容器
docker stop 容器名称

2.4 目录挂载(创建容器时指定)

docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos4 centos:7

2.4.1 查看IP

查询所有信息
docker inspect
只查询IP
docker inspect --format=’{{.NetworkSettings.IPAddress}}’ mycentos4

2.5 删除容器

#删除镜像
docker rm mycentos4
#删除镜像
docker rmi centos:7

2.6 根据镜像创建MySql

1拉取镜像
2.生成容器
docker run -di --name=tensquare_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 centos/mysql-57-centos7

2.6.1 根据镜像创建TOMCAT

1拉取镜像
2.生成容器
docker run -di --name=mytomcat -p 9000:8080
-v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:7-jre7
将 war 上传到指定目录即可运行

2.7 根据镜像创建NGINX

1拉取镜像
2.生成容器
docker run -di --name=mynginx -p 80:80 nginx
赋值到指定的目录下
docker cp html mynginx:/usr/share/nginx

2.8 根据镜像创建REDIES

1拉取镜像
2.生成容器
docker run -di --name=myredis -p 6379:6379 redis
客户端链接
redis-cli -h 188.188.3.19

2.9 迁移与备份

容器保存镜像
docker commit mynginx mynginx_i
生成容器
docker run -di --name=mynginx2 -p 81:80 mynginx_i

保存镜像文件
docker save -o mynginx.tar mynginx_i
查看文件
dir 查看 root目录

停止容器
docker stop mynginx2
删除容器
docker rm mynginx2
删除镜像
docker rmi mynginx_i

根据文件恢复镜像
docker load -i mynginx.tar

2.9 Dockerfile生成基本容器(含jdk)
  1. 创建文件夹: mkdir -p /usr/local/dockerjdk8
  2. 上传JDK文件并移动到指定的文件夹中:mv jdk-8u171-linux-x64.tar.gz /usr/local/dockerjdk8
  3. vi Dockerfile

FROM centos:7
MAINTAINER itcast
WORKDIR /usr
RUN mkdir /usr/local/java
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/

ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH J A V A H O M E / b i n / d t . j a r : JAVA_HOME/bin/dt.jar: JAVAHOME/bin/dt.jar:JAVA_HOME/lib/tools.jar: J R E H O M E / l i b : JRE_HOME/lib: JREHOME/lib:CLASSPATH
ENV PATH J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:PATH
4.在含有jdk包的目录下运行
docker build -t=‘jdk1.8’ .
5. 生成镜像查看 docker images

3.0 部署私有仓库
  1. 拉取镜像: docker pull registry
  2. 启动: docker run -di --name=myregistry -p 5000:5000 registry
  3. 浏览器查看私有仓库是否安装成功:http://188.188.3.19:5000/v2/_catalog
  4. 修改配置文件 vi /etc/docker/daemon.json
    让docker仓库信任私有仓库
    {
    “registry-mirrors”: [“https://docker.mirrors.ustc.edu.cn”],
    “insecure-registries”:[“188.188.3.19:5000”]
    }
  5. 重启服务,让配置生效
    systemctl restart docker
3.1 上传镜像到私有仓库
  1. 设置标签: docker tag jdk1.8 188.188.3.19:5000/jdk1.8
  2. 如果容器没有启动则启动: docker start registry
  3. 浏览器查看私有仓库是否含有该镜像:http://188.188.3.19:5000/v2/_catalog
3.2 从私服下载到宿主机
  1. 修改配置文件 vi /etc/docker/daemon.json, 让docker仓库信任私有仓库
    {
    “registry-mirrors”: [“https://docker.mirrors.ustc.edu.cn”],
    “insecure-registries”:[“188.188.3.19:5000”]
    }
  2. docker push 188.188.3.19:5000/jdk1.8

build的时候这样:
docker build -t 188.188.3.19:5000/eapp-corp-project
然后用:
docker push 188.188.3.19:5000/eapp-corp-project

3.2.1 删除私有仓库镜像

//获取镜像id
curl --header “Accept:application/vnd.docker.distribution.manifest.v2+json” -I -XGET        http://镜像地址/v2/镜像名称/manifests/镜像版本

curl --header “Accept:application/vnd.docker.distribution.manifest.v2+json” -I -XGET http://188.188.3.19:5000/v2/eapp-corp-project/manifests/1.0.0

删除
curl -I -XDELETE 私有仓库地址/v2/镜像名称/manifests/镜像对应sha256值

curl -I -XDELETE http://188.188.3.19:5000/v2/eapp-corp-project/manifests/389ecbc5556e0c45e2eaa0c4630d7a983a482acef5a9d799684a80e812f19024

3.3 持续集成与容器管理
3.3.1 dockerMaven 的使用
  1. 让容器支持远程操作
    vi /lib/systemd/system/docker.service
    在 ExecStart=/usr/bin/dockerd 后面添加配置 -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

刷新配置,重启服务:
systemctl daemon-reload
systemctl restart docker
docker start registry(容器名称)

pom.xml 代替 Dockerfile写法

dingding


org.springframework.boot
spring‐boot‐maven‐plugin

<!‐‐ docker的maven插件,官网:
https://github.com/spotify/docker‐maven‐plugin ‐‐>

com.spotify
docker‐maven‐plugin
0.4.13

188.188.3.19:5000/ p r o j e c t . a r t i f a c t I d : {project.artifactId}: project.artifactId:{project.version}

jdk1.8
[“java”, “‐jar”,
"/ p r o j e c t . b u i l d . f i n a l N a m e . j a r " ] < / e n t r y P o i n t > < r e s o u r c e s > < r e s o u r c e > < t a r g e t P a t h > / < / t a r g e t P a t h > < d i r e c t o r y > {project.build.finalName}.jar"]</entryPoint> <resources> <resource> <targetPath>/</targetPath> <directory> project.build.finalName.jar"]</entryPoint><resources><resource><targetPath>/</targetPath><directory>{project.build.directory}

${project.build.finalName}.jar


http://188.188.3.19:2375



在IDEA 的命令提示中 执行语句 :mvn docker:build -DpushImage

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值