Centos安装成功后需要更换为阿里源:
1、备份原镜像文件,便于后期恢复(发现文件夹下没有要备份的文件直接执行第二部)
sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2、下载新的CentOS-Base.repo 到/etc/yum.repos.d/
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
3、重新缓存
yum clean all //清除缓存
yum makecache fast //选择最快源
1、在线安装unzip
yum install unzip
2、在线安装rar、unrar
新增安装源
vim /etc/yum.repos.d/dag.repo
填入如下内容
[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=1
gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
安装
yum install rar unrar
3、离线安装rar、unrar
下载离线安装包(centos7已安装成功,其他版本需自行试验):
wget http://www.rarlab.com/rar/rarlinux-x64-4.2.0.tar.gz
解压到/usr/local目录
tar zxvf rarlinux-x64-4.2.0.tar.gz -C /usr/local
此时,/usr/local/rar下就会有rar命令和unrar命令。然后在/usr/local/bin下创建链接
ln -s /usr/local/rar/rar /usr/local/bin/rar
ln -s /usr/local/rar/unrar /usr/local/bin/unrar
4、Centos7安装docker
1、环境要求可参考官网
https://docs.docker.com/engine/install/centos/
查看linux内核版本:uname -r
2、yum更新
sudo yum update
3、卸载旧版本(前提是安装过docker)
# 查询安装过的包
yum list installed | grep docker
或者
rpm -qa docker*
# 移除查询出来的文件
# docker-ce.x86_64\docker-ce-cli.x86_64\docker-scan-plugin.x86_64为查询出来的文件
sudo yum remove docker-ce.x86_64 docker-ce-cli.x86_64 docker-scan-plugin.x86_64
# 删除docker命令
rm -rf /usr/bin/docker
# 进入 /var/lib删除保留数据,如果需要报留可不删除
rm -rf /var/lib/docker
rm -rf /var/lib/docker-engine
4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
5、设置yum源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 让yum自动检测哪个安装源是最快的
yum makecache fast
6、查看仓库中所有docker版本
yum list docker-ce --showduplicates | sort -r
7、安装docker
# 安装最新版本docker引擎和容器
sudo yum install docker-ce docker-ce-cli containerd.io
# 安装特定版本docker
sudo yum install docker-ce-18.09.1 docker-ce-cli-18.09.1 containerd.io
8、启动并加入开机启动,并查看版本
sudo systemctl start docker #启动docker
sudo systemctl enable docker #加入开机启动
docker version #查看版
9、容器间通讯
(1)、link单向通讯
docker容器创建后都会创建一个虚拟ip,docker容器间的虚拟ip是互通互连的,但是ip是有局限性的,重新创建容器ip发生变化需要重新设置,现在设置通过容器名称进行单向通讯
# 实验采用tomcat容器以及centos容器,拉取容器
docker pull tomcat
docker pull centos
# 启动一个centos容器,设置容器名称为database
docker run -itd --name database centos /bin/bash
# 设置tomcat容器到database的单向通信
docker run -d --name web --link database tomcat
# 进入tomcat容器
docker exec -it 容器id /bin/bash
#ping database 能通代表设置成
ping database
#如果没有ping命令采用如下命令进行安装后ping
apt-get update
apt install iputils-ping
apt install net-tools
(2)、采用Bridge双向通讯
# 查看docker底层网络明细
docker network ls
# 创建新的网桥
docker network create -d bridge my-bridge
# 容器绑定网
docker network connect my-bridge web
docker network connect my-bridge database
# 验证,分别登录web、database容器验证,相互ping通代表成功
docker exec -it 容器id /bin/exec
10、容器间文件共享
(1)、命令挂载(单节点推荐使用)
docker run --name 容器名 -v 宿主机路径:容器内挂载路径(绝对路径) 镜像名
(2)、通过共享容器挂载(多容器共目推荐使用)
# 创建共享容器
docker create --name webpage -v /webapps:/usr/local/tomcat/webapps tomcat /bin/true
# 通过关联共享容器goon共享挂载点
docker run --volumes-from webpage --name t1 -d tomcat
11、docker-compose 安装使用
打开官方文档:https://docs.docker.com/compose/instal
# 下载docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 若上异步官网链接连接超时,可手动从github(https://github.com/docker/compose/releases)上下载最新版本即可,放入/usr/local/bin,并更名为docker-compose,然后根据官网步骤执行
mv docker-compose-Linux-x86_64 docker-compos
#添加执行权限
chmod +x /usr/local/bin/docker-compose
# 检查docker compose版本
docker-compose version
12、docker-compose安装开源博客WordPress
参考官网教程:https://docs.docker.com/samples/wordpress
# 新建wordpress文件夹,并进入文件夹,新建文件docker-compose.yml
mkdir wordpress
cd wordpress
vi docker-compose.yml
# docker 官网镜像仓库
https://hub.docker.com/search?q=wordpress&type=image
# 填充如下内容后,根据自己内容修改即可
version: "3.9"
services:
db:
image: mysql:latest
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- wordpress_data:/var/www/html
ports:
- "8080:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {}
wordpress_data: {}
注意:docker-compose 一定要使用最新版本,避免出现错误
13、使用docker-compose部署springboot项目
本地新创建两个文件夹s-app,s-db
(1)、准备一个简单的springboot项目放入s-app,仅仅提供一个接口可往数据库添加信息
(2)、准备一个项目配置文件application.yml,放入s-app
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
# 注意,这里的db是创建数据库容器命名的名称,需要和创建数据库容器命名对应
url: jdbc:mysql://db:3306/test01?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
username: root
password: root
# 项目端口号
server:
port: 80
(3)、导出数据库文件test01.sql放入s-db,注意如果文件没有创建数据库语句,自行添加上
(4)、在linux根目录新建s文件夹,把s-app,s-db两个文件夹上传到s文件夹
(5)、在s文件夹下新建文件docker-compose.yml
vi docker-compose.yml
# 文件书写内容如下,注意保持version版本和docker-compos相适应
version: "3.8"
services:
# db为自定义的数据库名称
db:
build: ./s-db/
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
app:
build: ./s-app/
depends_on:
- db
# 对外暴漏的端口号
ports:
- "80:80"
restart: always
(6)、进入s-app文件夹,创建Dockerfile文件
cd s-app
vi Dockerfile
# 填充内容如下
FROM openjdk:8u222-jre
# 定义工作文件夹
WORKDIR /usr/local/jdbc
# 把jar和配置文件复制到当前目录
ADD springboot-jdbc-0.0.1-SNAPSHOT.jar .
ADD application.yml .
# 暴漏80端口
EXPOSE 80
# 执行springboot项目运行命令
CMD ["java","-jar","springboot-jdbc-0.0.1-SNAPSHOT.jar"]
(7)、进入s-db文件夹,创建Dockerfilewenjian
cd ../s-db
# 填充如下内容
FROM mysql:5.7
# 数据库初始化文件存放目录
WORKDIR /docker-entrypoint-initdb.d
ADD test01.sql .
(8)、启动部署
# 进入 s文件夹
cd ../
# 执行部署命令
docker-compose up
# 后台启动
docker-compose up -d
# 停止
docker-compose down
启动完成,浏览器访问ip/jdbc?name=xiaoli&age=12,页面不报部署成功。
5、docker安装redis
1、拉取redis镜像
docker search redis #查询redis镜像版本
docker pull redis #拉取redis最新镜像
2、新建需要目录
mkdir /data/docker/redis/conf # 新建配置文件目录
mkdir /data/docker/redis/data #新建数据保存目录
3、首次启动redis
docker run -d --privileged=true -p 6379:6379 --restart always -v /data/docker/redis/conf/redis.conf:/etc/redis/redis.conf -v /data/docker/redis/data:/data --name myredis redis redis-server /etc/redis/redis.conf --appendonly yes --requirepass "123456"
涉及命令说明:
-d -> 以守护进程的方式启动容器
-p 6379:6379 -> 绑定宿主机端口
--name myredis -> 指定容器名称
--restart always -> 开机启动
--privileged=true -> 提升容器内权限
-v /data/docker/redis/conf/redis.conf:/etc/redis/redis.conf -> 映射配置文件
-v /data/docker/redis/data:/data -> 映射数据目录
redis-server /etc/redis/redis.conf --appendonly yes -> 在容器里执行redis-server命令,打开redis持久化
--requirepass -> 密码
4、非首次操作redis
docker start myredis #启动redis
docker stop myredis #停止redis
docker restart myredis #重启redis
6、docker安装postgres
1、拉取镜像
docker search postgres#查询postgres镜像版本
docker pull postgres#拉取postgres最新镜像
docker pull postgres:9.4 #拉取指定版本
2、创建postgres需要文件夹
mkdir /data/docker/postgres/data #创建存放postgres数据目录
3、首次启动postgres
注意启动的时候不能添加–restart=always,如果添加实际上启动不起来,部加该指令会导致服务不会随容器重启
docker run --name mypostgres -v /data/docker/postgres/data:/var/lib/postgresql/data -e POSTGRES_PASSWORD=password -p 5432:5432 -d postgres:latest
4、容器操作
docker start mypostgres #启动创建的容器
docker start containerID #启动容器