服务器容器化-docker(全)

另外两篇Docker笔记

Docker构建笔记
docker学习笔记(安装 卸载 基本命令)

Docker整体架构介绍

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Docker环境搭建

在这里插入图片描述

安装方法一

  • 安装方法

yum install docker

  • 启动docker

systemctl start docker

卸载
  • 卸载docker
$ sudo yum remove docker \ 
                  docker-client \ 
                  docker-client-latest \ 
                  docker-common \ 
                  docker-latest \ 
                  docker-latest-logrotate \ 
                  docker-logrotate \  
                  docker-engine

安装方法二 (建议):

  • 下载docker安装脚本:curl -fsSL get.docker.com -o get-docker.sh

    curl -fsSL get.docker.com -o get-docker.sh
    
  • 运行脚本(执行阿里云源):sh get-docker.sh --mirror Aliyun

    sh get-docker.sh --mirror Aliyun
    
  • 重新加载配置:systemctl daemon-reload

    systemctl daemon-reload
    
  • 启动docker:systemctl restart docker

    systemctl restart docker
    
  • 查看docker版本:docker version

    docker version
    

docker的容器生命周期管理

在这里插入图片描述
在这里插入图片描述

docker的基本命令(Docker Container之CRUD)

下载镜像 docker pull

例如:

docker pull nginx
创建容器 docker create

例如:

docker create nginx
查看容器 docker ps ( docekr ps -a 查看所有)
docker ps -a
启动容器 docker run

例如:

docker run 1e86100fbcff
进入交互状态 docker exec -it [id] /bin/bash (exit 退出来)

例如

docker exec -it 1e86 /bin/bash
暂停/停止/杀死 [启动]容器 docker pause [启动 docker unpause] / docker stop [启动 docker start]/ docker kill [启动 docker start]

例子:

docker pause 1e86100fbcff
docker stop 1e86100fbcff
docker unpause 1e86100fbcff
docker start1e86100fbcff
删除容器 docker rm (-f 强制删除)
docker rm -f 1e86
查看日志 docker logs (-f :持久刷新查看) [id]
docker logs 4feg

限制资源启动

-c (-c 4000是cpu资源量)
 docker run -d -c 4000 nginx
-m 抢占流量 --memory-swap (内存资源)

例如:

docker run -d -m 200M --memory-swap=400M nginx
–blkio-weight (io资源)
 docker run -d --blkio-weight 300 nginx

Dockerfile实战

在这里插入图片描述

创建Dockerfile(vi dockerfile)

vi Dockerfile

解析Dockerfile 文件

  • MAINTAINER aoteman (维护人员)

  • RUN mkdir test1 (容器启动后执行的命令)

  • RUN touch test2 (可多个命令执行)

  • COPY test3 . (复制test3到本目录)

  • ADD test4.tar.gz . (add可以进行解压)

  • —分割线—

  • EXPOSE 80 (暴露80端口)

  • VOLUME /data (指定目录)

  • ENTRYPOINT (始终执行)

  • CMD 命令 如果有外部传cmd命令,则文件内的不执行

Dockerfile文件内容

#Owned by Lin Shuzheng
FROM debian
MAINTAINER shuzheng
RUN mkdir test1
RUN touch test2
COPY test3 .
ADD test4.tar.gz .
ENTRYPOINT ["/bin/sh"]
CMD ["-c","ls -l"]

执行dockerfile命令 - docker build -t

执行命令生成一个mysh镜像
```
docker build -t mysh .
```

在这里插入图片描述

执行 docker run mysh

在这里插入图片描述

执行docker run mysh -c date (利用CMD修改执行结束后的方法 从ls -L 改成为 date)

在这里插入图片描述

/bin/sh -c date (利用ENTRYPOINT 来修改结尾的命令 从ls -L 改成为 date)

在这里插入图片描述


系统卷 -v
[root@training1 ~]# pwd
/root
[root@training1 ~]# ls
apache  Dockerfile  emacs  get-docker.sh


[root@training1 ~]# docker run -v $PWD/data:/data -d redis:3.2 redis-server
aa964b1b61fd2a8c503bb3cd63ee87235f85bead022b504f48f20eff575e5b05
[root@training1 ~]# ls
apache  data  Dockerfile  emacs  get-docker.sh

[root@training1 ~]# docker ps
CONTAINER ID        IMAGE                 COMMAND                  CREATED              STATUS              PORTS               NAMES
aa964b1b61fd        redis:3.2             "docker-entrypoint.s…"   About a minute ago   Up About a minute   6379/tcp            tender_franklin
[root@training1 ~]# docker exec -it aa964b1b61fd /bin/bash

root@aa964b1b61fd:/data# touch update
root@aa964b1b61fd:/data# exit
exit

[root@training1 ~]# ls data/
update


在这里插入图片描述

Docker 网络通信

在这里插入图片描述

Docker 生态圈

在这里插入图片描述

微服务部署

安装平台服务 rabbitMQ , Redis , Mysql

在这里插入图片描述

安装 RabbitMQ
 docker run -d --name myrebbitmq -p 5672:5672 -p 15672:15672 rabbitmq:management
安装redis
docker run -d -p 6379:6379 --name myredis redis redis-server
  • 挂载 配置redis.conf
docker run -d --privileged=true -p 6379:6379 -v /docker/redis/conf/redis.conf:/etc/redis/redis.conf -v /docker/redis/data:/data --name reidsLinBookz redis redis-server /etc/redis/redis.conf --appendonly yes
  • 设置reds 密码
docker exec -it myredis redis-cli

CONFIG SET requirepass  123456


docker restart myredis

参数说明:

–privileged=true:容器内的root拥有真正root权限,否则容器内root只是外部普通用户权限

-v /docker/redis/conf/redis.conf:/etc/redis/redis.conf:映射配置文件

-v /docker/redis/data:/data:映射数据目录

redis-server /etc/redis/redis.conf:指定配置文件启动redis-server进程

–appendonly yes:开启数据持久化

mkdir /docker
mkdir /docker/redis
mkdir /docker/redis/conf
mkdir /docker/redis/data

创建redis.conf配置文件
touch /docker/redis/conf/redis.conf

redis.conf文件内容自行添加:
切记注释掉:#daemonize yes 否则无法启动容器
重要话说三遍:注释掉#daemonize yes,注释掉#daemonize yes,注释掉#daemonize yes
#任何ip可以访问
bind 0.0.0.0
#守护进程
#daemonize yes
#密码
requirepass 123456
#持久化⽂件名称
dbfilename xdclass.rdb
#持久化⽂件存储路径
dir /data/
#持久化策略, 10秒内有个1个key改动,执⾏快照
save 10 1
######之前配置######
#导出rdb数据库⽂件压缩字符串和对象,默认是yes,会浪费CPU但是节省空间
rdbcompression yes
# 导⼊时是否检查
rdbchecksum yes


#aof持久化配置
#appendonly yes
#appendfilename "appendonly.aof"
#appendfsync everysec

# aof重写期间是否同步
no-appendfsync-on-rewrite no
# 重写触发配置
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
# 加载aof时如果有错如何处理
# yes表示如果aof尾部⽂件出问题,写log记录并继续执⾏。
no表示提示写⼊等待修复后写⼊
aof-load-truncated yes
安装mysql
 docker run -d -p 3306:3306 --name mymysql -e MYSQL_ROOT_PASSWORD=123456 mysql

配置java 8 的dockerfile 启动jar

Dockerfile

FROM java:8
ADD registry.jar  registry.jar
ENTRYPOINT ["java","-jar","registry.jar"]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值