Docker 容器不持久,用完就删除
安装
1.# yum-util提供yum-config-manager功能,另外两个是 devicemapper 驱动依赖
$ yum install -y yum-utils device-mapper-persistent-data lvm2
2.设置yum源
由于官网的源太慢了,这里可以使用阿里云Docker Yum源替代:
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
3.可以查看所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r
4.安装
yum -y install docker-ce-18.09.9 docker-ce-cli-18.09.0 containerd.io -y
配置&使用
5.修改docker 镜像为阿里云
默认进入
/etc/docker
创建daemon.json文件
{
"bip":"172.17.3.1/24", 可以修改容器的IP段
"registry-mirrors":["https://kxxx.mirror.aliyuncs.com"]
}
systemctl start docker #启动
systemctl enable docker #关闭
docker images 查看本地镜像
docker ps 查看运行服务
docker rmi “IMAGEID” 删除镜像
6.查看容器服务地址
docker inspect nginx
7.删除容器信息
docker rm -fv nginx
f 强制
v nginx 携带数据
8.修改docker 服务IP端
修改 daemon.json 文件 bip
systemctl daemon-reload
systemctl restart docker
9.查找镜像
docker search nginx
10.拉取远程镜像
docker pull nginx:latest
11.启动容器
docker run --name nginx -p 8080:80 -d nginx
--name 指定容器名字
-p 端口映射,将本地8080 映射到容器80
-d 设置容器在后台运行
12.进入指定容器
docker exec -it nginx /bin/bash
exit 退出
13.docker容器里面配置和宿主机交互
docker cp nginx:/etc/nginx/config.d/default.conf .
14.docker 挂载
docker run -d --name docker -p 8080:80 -v /
15. centos 启动不指定干啥,退出就关闭了。
docker run -it --name centos centos /bin/bash
/bin/bash --sh环境
docker -ps a 查看所有容器
16.docker 的挂载
1.配置时,直接在宿主机配置ok
2.容器生产的数据,不允许放容器(容器移除)
3.容器的日志,方便查看
17.docker login 登陆
18.getenforce 建议关闭,导致很多软件不兼容 包括k8s(linux 安全级别很高的关口)
临时关闭 setenforce 0
永久关闭 vi /etc/sysconfig/selinux 设置diabled
19.容器转换为镜像(非主流)
docker commit -a "xxxxx" -m "备注" tomcat tomcat:mvn(镜像的名字)
-t 直接
tomcat:TAG
20.主流 Dockerfile
Dockerfile 是一个文件格式的配置文件,用户可以使用Dockerfile快速创建自定义镜像
基础镜像、维护者信息、操作指令、容器CMD
Dokerfile 分为两种指令格式:构建指令和设置指令
构建指令:用于构建镜像时候执行的,不会在镜像上的容器执行。
设置命令:用于设image的属性,将会运行在容器里
Dockerfile
FROM tomcat 基础镜像
ADD ["target/test.war","/user/local/tomcat/webapps/test.war"]
EXPOSE 8080
target/mvn.war 相对路径
创建镜像
docker build -t tomcat:1 .
.当前路径
1.CMD 命令 可以改变
2.定制不能改
ENTRYPOINT ["java","-version"]
查看层级
docker history tomcat:java
21.docker maven 插件,如果是jar 包,war 插件改为 jar
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.13</verison>
<configuration>
<imageName>dockermvn:1.4.7</imageName>
<dockerDirectory>${project.basedir}</dockerDirectory>
<skipDokerBuild>false</skipDokerBuild>
<resources>
<resource>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jae</include>
</resource>
</resources>
</configuration>
直接打包镜像
mve clean package docker:build
22.镜像仓库
docker -d --name req -p 5000:5000 registry
客户端只支持https方式
1.推送镜像仓库(不鼓励)
docker tag docker:mvn 地址/镜像名
docker push 地址/镜像名
2.(鼓励)
mve clean package docker:build docker:push
<imageName>192.168.2.158:5000/dockermvn:1.0.0</imageName>
daemon.json 配置文件配置,局域网内配置不需要https 拉取
"insecure-registries":["192.168.2.158:5000"]
23.数据挂载多个服务(统一规划)
1.创建统一挂载容器(从来不启动的容器)
docker run -d --name data -v /docker/nginx:/etc/nginx/conf.d -v /docker/mysql/conf:/etc/mysql hello-word
2.mysql nginx 引用挂载容器
docker run -d --name nginx -p 80:80 --volumes-from data nginx
24.compose编排服务 单机
工程项目(mysql服务、nginx、web项目)
1.安装 docker-compose
curl -L https://githup.com/docker/compose/releases/download/1.17.1/docker-compose-'uname-s'-'uname-m' >/use/local/bin/docker-compose
2.赋予权限
chmod +x /usr/local/bin/docker-compose
启动工程
docker-compose up -d --scale tomcat=2
--scale tomcat=2 表示要启动多份
集群模式创建时不能映射端口
关闭工程
doker-compose down
compose 文件格式
docker-compose.ymal
devops理念,快速搭建开放环境
25.多服务集群docker-swarm
1.打开远程端口
vi /lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H tcp:0.0.0.0:2375 -H fd:// --containerd=/run/containerd/containerd.sock
2.设置主控manager (初始化)
docker swarm init --adverties-addr 本机IP
docker node ls 查看本机节点信息
3.node join
docker swarm join --token xxxxx 192.168.2.158:2377
docker swarm leave 节点离开
创建服务
docker service create --name nginx --replicas 3 -p 80:80 nginx:1.7.9
--replicas 表示创建3台
docker service ls 查看服务
docker service ps nginx 查看服务具体的详情
docker service update --image ngin:1.9.7 nginx 更新版本
动态扩容
docker service scale nginx=4