【Docker】学习笔记,从入门到精通

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值