1.Docker 安装:
注册中心:https://hub.docker.com/
(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 设置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 查看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 根据镜像创建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
docker cp eapp-corp-project-1.0.0.jar mydingding9700:/usr/local
####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)
- 创建文件夹: mkdir -p /usr/local/dockerjdk8
- 上传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 $JAVA_HOME/bin/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
4.在含有jdk包的目录下运行
docker build -t='jdk1.8' .
5. 生成镜像查看
docker images
3.0 部署私有仓库
- 拉取镜像: docker pull registry
- 启动: docker run -di --name=myregistry -p 5000:5000 registry
- 浏览器查看私有仓库是否安装成功:http://188.188.3.19:5000/v2/_catalog
- 修改配置文件 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 上传镜像到私有仓库
- 设置标签: docker tag jdk1.8 188.188.3.19:5000/jdk1.8
- 如果容器没有启动则启动: docker start registry
- 浏览器查看私有仓库是否含有该镜像: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
删除私有仓库镜像
//获取镜像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 的使用
- 让容器支持远程操作
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写法
<build>
<finalName>dingding</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring‐boot‐maven‐plugin</artifactId>
</plugin>
<!‐‐ docker的maven插件,官网:
https://github.com/spotify/docker‐maven‐plugin ‐‐>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker‐maven‐plugin</artifactId>
<version>0.4.13</version>
<configuration>
<imageName>188.188.3.19:5000/${project.artifactId}:${project.version}
</imageName>
<baseImage>jdk1.8</baseImage>
<entryPoint>["java", "‐jar",
"/${project.build.finalName}.jar"]</entryPoint>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}
</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
<dockerHost>http://188.188.3.19:2375</dockerHost>
</configuration>
</plugin>
</plugins>
</build>
在IDEA 的命令提示中 执行语句 :
mvn docker:build -DpushImage
dockerfile 创建含jdk和tomat 的镜像
准备工作,下载jdk和tomcat包
tomcat:https://tomcat.apache.org/
JKD:https://www.oracle.com/java/technologies/javase-jdk8-downloads.html
#镜像
FROM centos
#创建者
MAINTAINER gl.com
#工作目录
WORKDIR /root
#在/opt/下创建jdk目录,用来存放jdk文件
RUN mkdir /usr/local/jdk
#在/opt/下创建tomcat目录,用来存放tomcat
RUN mkdir /usr/local/tomcat
#将宿主机的jdk目录下的文件拷至镜像的/opt/jdk目录下
COPY jdk1.8.0_171 /usr/local/jdk
#将宿主机的tomcat目录下的文件拷至镜像的/opt/tomcat目录下
COPY apache-tomcat-9.0.31 /usr/local/tomcat
#设置环境变量
ENV JAVA_HOME=/usr/local/jdk
ENV JRE_HOME=$JAVA_HOME/jre
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH=/sbin:$JAVA_HOME/bin:$PATH
#公开端口
EXPOSE 8080
#设置启动命令
ENTRYPOINT ["/usr/local/tomcat/bin/catalina.sh","run"]