查看虚拟机版本
uname -a
使用yum命令在线安装
yum install docker
安装后查看Docker版本
docker version
启动与停止Docker
systemctl命令是系统服务管理器指令,它是 service 和 chkconfig 两个命令组合。
启动docker: systemctl start docker
停止docker: systemctl stop docker
重启docker: systemctl restart docker
查看docker状态: systemctl status docker
开机启动: systemctl enable docker
查看docker概要信息: docker info
查看docker帮助文档: docker --help
显示系统信息 docker info
Docker镜像操作
列出docker下的所有镜像: docker images
搜索镜像 docker search 镜像名称
Docker拉取镜像
使用命令拉取:
docker pull centos:7
外网下载如果没速度,可以配置镜像下载
https://lug.ustc.edu.cn/wiki/mirrors/help/docker
1.编辑该文件:vi /etc/docker/daemon.json // 如果该文件不存在就手动创建;说明:在centos7.x下,通过vi
2.在该文件中输入如下内容:
{
“registry-mirrors”: [“https://docker.mirrors.ustc.edu.cn”]
}
3.注意:一定要重启docker服务,如果重启docker后无法加速,可以重新启动OS,然后再运行 docker pull centos:7
也可以相同的方式配阿里云镜像加速。
删除镜像
1、 docker rmi $IMAGE_ID:删除指定镜像
2、 docker rmi docker images -q
:删除所有镜像
Docker容器操作
查看容器
查看正在运行容器: docker ps
查看所有的容器(启动过的历史容器):docker ps –a 高版本才支持
查看最后一次运行的容器: docker ps –l
查看停止的容器 docker ps -f status=exited
创建与启动容器
创建容器命令: docker run
后加上:
-i:表示运行容器
-t:表示容器启动后会进入容器命令行(交互式)。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
--name :为创建的容器命名。
-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。
-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
停止与启动容器
停止正在运行的容器: docker stop $CONTAINER_NAME/ID
启动已运行过的容器: docker start $CONTAINER_NAME/ID
文件拷贝
如果我们需要将文件拷贝到容器内可以使用cp命令
docker cp 需要拷贝的文件或目录 容器名称:容器目录
也可以将文件从容器内拷贝出来
docker cp 容器名称:容器目录 需要拷贝的文件或目录
目录挂载
创建容器 添加-v参数 后边为 宿主机目录:容器目录
–privileged=true 来解决挂载的目录没有权限的问题
查看容器IP地址
方式一:查看容器运行的各种数据 docker inspect mycentos2(容器名)
方式二:命令直接输出IP地址 docker inspect --format=’{{.NetworkSettings.IPAddress}}’ mycentos2(容器名)
删除容器
删除指定的容器:docker rm $CONTAINER_ID/NAME
注意,只能删除停止的容器
删除所有容器:docker rm docker ps -a -q
MySQL部署
拉取MySQL镜像 docker pull mysql:5.7
创建MySQL容器 docker run -di --name hrm_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
-p 代表端口映射,格式为 宿主机映射端口:容器运行端口
-e 代表添加环境变量 MYSQL_ROOT_PASSWORD是root用户的登陆密码
进入mysql docker exec -it hrm_mysql /bin/bash
mysql登录 mysql -uroot -p123456
查看容器IP地址 命令查看容器运行的各种数据 docker inspect hrm_mysql
端口映射:把容器的端口映射成能够通过宿主机的端口进行访问.
Redis部署
拉取Redis镜像,centos是基础镜像 docker pull redis
创建Redis容器 docker run -di --name=hrm_redis -p 6379:6379 redis
设置密码 docker run -di --name hrm-redis -p 6379:6379 redis --requirepass 自己设置密码
在本地客户端测试redis
redis-cli -h 49.235.207.241(自己服务器ip)
auth redis密码
keys * (无报错说明正常启动)
fastdfs部署
下载镜像 docker pull registry.cn-beijing.aliyuncs.com/tianzuo/fastdfs
运行 docker run -di --restart=always --privileged=true --net=host --name=fastdfs -e IP=49.235.207.241 -e WEB_PORT=80 -v ${HOME}/fastdfs:/var/local/fdfs registry.cn-beijing.aliyuncs.com/tianzuo/fastdfs
说明:IP=49.235.207.241(自己服务器ip)
–restart=always 表示linux启动后,每次这个容器都会自动重启.
测试
先进入到fastdfs docker exec -it fastdfs /bin/bash
打印字符串到文件 echo “Hello FastDFS!”>index.html
上传文件到fastdfs fdfs_test /etc/fdfs/client.conf upload index.html
访问上传文件 http://49.235.207.241/group1/M00/00/00/rBEAEF5fS9-AWHXuAAAADwL5vO423.html
防火墙未关闭可能会导致不能访问
关闭centos7防火墙 systemctl status firewalld.service
systemctl stop firewalld.service
注意:做端口映射是必须开启防火墙,部署完了再开启防火墙
Nginx部署
拉取Nginx镜像 docker pull nginx
创建Nginx容器 docker run -di --name=hrm_nginx -p 8080:80 nginx
测试Nginx,浏览器地址栏输入: http://49.235.207.241:8080
配置反向代理
nginx.conf引入default.conf所以修改default.conf,如果没有引入直接修改nginx.conf
从容器拷贝配置文件到宿主机 docker cp hrm_nginx:/etc/nginx/conf.d/default.conf default.conf
编辑default.conf,添加反向代理配置 vi default.conf
upstream tomcat-cas {
server 172.17.0.7:8080;
server 172.17.0.7:8081;
server 172.17.0.7:8082;
}
server {
listen 80;
server_name localhost;
location / {
#proxy_pass http://tomcat地址; 单机配置
proxy_pass http://集群名称(tomcat-cas); 集群配置
index index.html index.htm;
}
}
保存退出 :wq
把复制文件拷贝到原路径进行覆盖 docker cp default.conf hrm_nginx:/etc/nginx/conf.d/default.conf
重新启动容器 docker restart hrm_nginx
tomcat安装
查询tomcat docker search tomcat:8
安装tomcat8 docker pull tomcat:8
创建tomcat容器 docker run -di --name=hrm_tomcat -p 9090:8080 tomcat:8
镜像高级操作-创建镜像
基于容器构建 docker commit mycentos(容器) liankongcentos(镜像名)
使用新镜像启动新容器 docker run -di --name=mycentos3 liankongcentos:latest
Dockerfile构建jdk1.8的镜像(需要centos的镜像)
新建Dockerfile文件 vi Dockerfile
写入语法
FROM centos:7
MAINTAINER yhptest
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 J A V A H O M E / b i n / d t . j a r : JAVA_HOME/bin/dt.jar: JAVAHOME/bin/dt.jar:JAVA_HOME/lib/tools.jar: J R E H O M E / l i b : JRE_HOME/lib: JREHOME/lib:CLASSPATH
ENV PATH J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:PATH
构建JDK1.8 docker build -t=“jdk1.8” .
私有仓库搭建
下载私有仓库镜像 docker pull registry
启动私有仓库容器 docker run -di --name=liankong-registry -p 5000:5000 registry
查看日志是否启动好 docker logs liankong-registry --tail 10 -f
测试 http://49.235.207.241:5000/v2/_catalog
让Docker信任私有仓库地址修改 vi /etc/docker/daemon.json
“insecure-registries”:[“192.168.0.109:5000”]
重启docker systemctl restart docker
重启容器 docker start liankong-registry
上传镜像
标记此镜像为私有仓库镜像 docker tag jdk1.8 49.235.207.241:5000/jdk1.8
上传镜像 docker push 49.235.207.241:5000/jdk1.8
测试: http://49.235.207.241:5000/v2/_catalog
下载镜像
删除本地镜像 docker rmi 49.235.207.241:5000/jdk1.8
下载 docker pull 49.235.207.241:5000/jdk1.8
新镜像创建容器测试 docker run -di --name=jdk1.8 49.235.207.241:5000/jdk1.8
Maven插件自动部署:
修改宿主机的docker配置,远程访问
vi /lib/systemd/system/docker.service
其中ExecStart=后添加配置
-H tcp://0.0.0.0:2375
-H unix://var/run/docker.sock
修改后如下(2)刷新配置,重启服务
systemctl daemon-reload
systemctl restart docker
docker start liankong-registry
防火墙对该端口放行(如果没有请直接关闭防火墙)
firewall-cmd --permanent --zone=public --add-port=2375/tcp
关闭防火墙
systemctl stop firewalld 只有加端口映射的时候必须开启
在eureka工程的pom里加入
eureka
org.springframework.boot
spring-boot-maven-plugin
com.spotify
docker-maven-plugin
0.4.13
49.235.207.241:5000/${project.artifactId}:${project.version}
jdk1.8
["java", "-jar", "/${project.build.finalName}.jar"]
/
${project.build.directory}
${project.build.finalName}.jar
http://49.235.207.241:2375
以上配置会自动生成Dockerfile
进入Eureka 所在的目录,输入以下命令,进行打包和上传镜像(cmd)
mvn clean package docker:build -DpushImage
查看是否成功 http://49.235.207.241:5000/v2/_catalog
启动容器
docker run -di --name=hrm-eureka -p 1010:1010 49.235.207.241:5000/hrm-eureka-1010:1.0-SNAPSHOT
测试,IDEA启动Eureka服务访问http://49.235.207.241:1010
持续集成工具-Jenkins
需要先安装jdk
将jdk-8u171-linux-x64.rpm上传至服务器home/java路径(虚拟机)
执行安装命令 rpm -ivh jdk-8u171-linux-x64.rpm RPM方式安装JDK,
其根目录为:/home/java/jdk1.8.0_171
配置环境 vi /etc/profile
在最后面添加
export JAVA_HOME=/home/java/jdk1.8.0_171
export PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:PATH
安装Jenkins
下载jenkins
wget https://pkg.jenkins.io/redhat/jenkins-2.190.1-1.1.noarch.rpm
或将jenkins-2.190.1-1.1.noarch.rpm上传至服务器
安装jenkins
rpm -ivh jenkins-2.190.1-1.1.noarch.rpm
配置jenkins
vi /etc/sysconfig/jenkins
修改用户和端口
JENKINS_USER=“root”
JENKINS_PORT=“8888”
启动服务
systemctl start jenkins
cat /var/log/jenkins/jenkins.log
拷贝密码到 http://49.235.207.241:8888 并完成推荐安装
如果链接超时,修改:vi /var/lib/jenkins/hudson.model.UpdateCenter.xml 把https修改为http
如果显示java未找到 vim /etc/init.d/jenkins 在最后加上/home/java/jdk1.8.0_171/bin/java路径
jenkins插件安装
maven插件
全局工具配置
安装Maven与本地仓库
将Maven压缩包上传至服务器/home/maven/
解压 tar zxvf apache-maven-3.5.4-bin.tar.gz
编辑setting.xml配置文件
vi /home/maven/apache-maven-3.5.4/conf/settings.xml 配置本地仓库目录
/home/maven/repository
vi /etc/profile
export MAVEN_HOME=/home/maven/apache-maven-3.5.4
export PATH=$MAVEN_HOME/bin:$PATH
source /etc/profile