Docker使用随记

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)
  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 $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 部署私有仓库
  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

删除私有仓库镜像

//获取镜像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写法
	<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"]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值