随着微服务的应用,docker的使用现在越来越广泛,在项目中积累的学习经验在此记录一下:

docker详解传送门:这可能是最为详细的Docker入门吐血总结_邓彪1022的博客-CSDN博客

一、安装部署docker环境

1)在线安装docker

无论系统中是否有Docker,我们需要先卸载老版本,我们需要安装新版本CE,其实我们应该知道Docker有分CE社区版本和EE企业版,后者是需要付费的,我们安装CE免费版本。

yum remove docker docker-client docker-client-latest
docker-common docker-latest docker-latest-logrotate docker-logrotate
docker-selinux docker-engine-selinux docker-engine -y

1. 安装docker-ce以及必要的包

yum install -y yum-utils device-mapper-persistent-data lvm2

2. 添加稳定版本源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

3. 安装docker-ce

yum install docker-ce

安装过程如果询问到是否继续OK,全部输入Y继续

4. 启动docker

systemctl start docker

5. 检测docker是否安装成功

docker run hello-world

最后,如果我们想要卸载docker,可以输入"yum remove docker-ce"执行卸载,以及"rm -rf /var/lib/docker"清除所有的文件目录

2)离线安装docker

docker离线安装包: https://download.csdn.net/download/romanticRose/12375568

1. 在目标计算机上将tgz包上传至/root路径下,并解压centos-local.tgz文件(具体文件名参照实际)

cd /root
tar -xvzf centos-local.tgz

2. 安装createrepo

cd /root/docker-ce-local
rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm
#注:createrepo版本可能不一样,根据自己下载的包的版本安装

3. 新增docker-ce-local.repo源文件,写入以下内容

# vi /etc/yum.repos.d/docker-ce-local.repo
[docker-ce-local]
name=Local Yum
baseurl=file:///root/docker-ce-local/
gpgcheck=1
gpgkey=file:///root/docker-ce-local/gpg
enabled=1

4.  生成源索引及缓存

createrepo /root/docker-ce-local
yum makecache

5.  安装docker-ce,并忽略gpg校验

yum install docker-ce --nogpgcheck

6. 启动服务并测试

systemctl start docker.service 
docker version

 7. 部署过程中遇到的问题整理

寻找yum源错误问题

a. 将/etc/yum.repos.d/文件夹下的yum源备份,先移除出该文件夹

b. 执行上述安装步骤中的2

c. 安装部署docker-ce,验证通过后将yum源还原

3) docker常用命令

#docker常用命令:

1. 查看容器: docker ps

2. 查看镜像: docker images

3. 删除容器: docker rm 容器name

4. 删除镜像: docker rmi 镜像id

5. 创建容器: docker run --name dockermysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=654321 mysql:5.7.23

6. 启动容器: docker start 容器name #docker start dockermysql

7. 重启容器: docker restart dockermysql

8. 停止容器: docker stop dockermysql

9. 容器交互: docker exec -it dockermysql bash #或 docker attach dockermysql

10.退出交互: Ctrl+P,Ctrl+Q(Ctrl键一直保持按下)

11.设置开机自启: systemctl enable docker

12.容器设置自启,update命令: docker update --restart=always aeccnginx

二、安装JDK(这里安装的是jdk-8u221-linux-x64.tar.gz)

1) 服务器环境安装JDK

百度网盘链接: https://pan.baidu.com/s/1RfjTxZ6e6fg37aAn2GlpcQ 
提取码: en8f 
复制这段内容后打开百度网盘手机App,操作更方便哦

解压jdk

移动文件到usr/java

配置环境变量 vi /etc/profile

export JAVA_HOME=/usr/java/jdk1.8.0_221
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}

保存:wq,退出

更新环境变量配置,通过命令source /etc/profile让profile文件立即生效,在cmd中输入Java或Java -version验证是否配置成功

2) docker离线JDK

将jdk离线docker资源包放置到系统文件夹中

mikdir /home/dockerimages

资源分享(Java1.8): docker离线部署jdk镜像

#进入到文件存放文件夹中
cd /home/dockerimages
#从tar归档文件或者标准输入流载入镜像,拉取
docker load < aeccjava8.tar
#查看镜像
docker ps
docker images

三、部署安装MySQL

1) 在线部署安装

docker pull mysql:5.7.23 拉取MySQL镜像

docker run -d --network host --name aeccmysql  -p 3306:3306 -e MYSQL_ROOT_PASSWORD=admin123 mysql:5.7.23 --lower_case_table_names=1 以host方式启动MySQL容器,并且MySQL忽略大小写

测试连接

2) 离线部署安装

#新建文件夹
mikdir /home/dockerimages
#将资源文件放置文件夹中,进入目录
cd /home/dockerimages
#拉取镜像tar文件
docker load < docker离线包.tar
#启动服务
执行上述docker run命令启动服务
#查看镜像
docker ps
docker images

四、部署安装Redis

1) 在线部署安装

docker pull redis:3.2.8  拉取指定版本的redis镜像

docker run -d --network host --name aeccredis  -p 6379:6379 redis:3.2.8 以host方式启动Redis容器

测试连接

2) 离线部署安装

#新建文件夹
mikdir /home/dockerimages
#将资源文件放置文件夹中,进入目录
cd /home/dockerimages
#拉取镜像tar文件
docker load < docker离线包.tar
#启动服务
执行上述docker run命令启动服务
#查看镜像
docker ps
docker images

五、部署安装nginx

1) 在线部署安装

从hup上pull镜像

docker pull hub.c.163.com/library/nginx

创建将要挂载的目录(这里以实际项目业务为例)

mkdir -p /home/aeccspringcloud/website/nginx/{conf,conf.d,html,logs}

先要有配置文件才能启动容器

#######============nginx.conf ==============
user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

#######============default.conf ==============
server {  
    listen       9002;  
    server_name  localhost;  
  
    #charset koi8-r;  
    #access_log  /var/log/nginx/log/host.access.log  main;  
  
    location / {
			# 指向我们打包后上传的前端?文件
			root   /usr/share/nginx/html/sys;
			index index.html;
			try_files   $uri $uri/ /index.html;
    }  
  	
  	# 通过路径前缀将请求转发到后端服务器器
  	location /api/ {
  		proxy_pass http://172.20.0.16:8765/api/;
  	}
  	
    error_page   500 502 503 504  /50x.html;  
    location = /50x.html {  
        root   /usr/share/nginx/html;  
    }  
}

启动容器

其中-v后跟的是你放置在nginx中的项目路径

docker run --name aeccnginx -d -p 9002:9002 -v /home/aeccspringcloud/website/nginx/html/:/usr/share/nginx/html -v /home/aeccspringcloud/website/nginx/conf/nginx.conf:/etc/nginx/nginx.conf  -v /home/aeccspringcloud/website/nginx/logs:/var/log/nginx -v /home/aeccspringcloud/website/nginx/conf.d:/etc/nginx/conf.d -d hub.c.163.com/library/nginx:latest

 网页访问验证成功与否

2) 离线部署安装

#新建文件夹
mikdir /home/dockerimages
#将资源文件放置文件夹中,进入目录
cd /home/dockerimages
#拉取镜像tar文件
docker load < docker离线包.tar
#启动服务
执行上述docker run命令启动服务
#查看镜像
docker ps
docker images

六、部署安装Tomcat(根据需求,spring boot项目无需安装)

1) 在线部署安装

拉取镜像

docker pull hub.c.163.com/library/tomcat:latest

docker pull tomcat:8.5.38-jre8

启动tomcat

docker run -d --name aecctomcat -p 9422:8080 hub.c.163.com/library/tomcat:latest

挂在宿主机目录方式启动

docker run -d --name aecctomcat -p 端口:8端口 -v / 项目路径:/usr/local/tomcat/webapps hub.c.163.com/library/tomcat:latest

 进入交互模式

docker exec -it aecctomcat /bin/bash

将准备好的 web 应用拷贝到 docker my-tomcat 容器, 这里拷贝进去之后会自动部署, 直接就可以访问

docker cp xxl-job-admin.war aecctomcat:/usr/local/tomcat/webapps(示例)

访问网站验证是否成功运行

 2) 离线部署安装

#新建文件夹
mikdir /home/dockerimages
#将资源文件放置文件夹中,进入目录
cd /home/dockerimages
#拉取镜像tar文件
docker load < docker离线包.tar
#启动服务
执行上述docker run命令启动服务
#查看镜像
docker ps
docker images

七、部署安装rabbitmq(根据业务需求)

1) 在线部署安装

docker pull rabbitmq:management 拉取rabbitmq镜像

docker run -d --network host --name aeccrabbit -e RABBITMQ_DEFAULT_USER=dev -e RABBITMQ_DEFAULT_PASS=dev123 -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 rabbitmq:management 以host方式启动rabbitmq

测试rabbitmq

2) 离线部署安装

#新建文件夹
mikdir /home/dockerimages
#将资源文件放置文件夹中,进入目录
cd /home/dockerimages
#拉取镜像tar文件
docker load < docker离线包.tar
#启动服务
执行上述docker run命令启动服务
#查看镜像
docker ps
docker images

八、docker离线镜像制作

需要已有的docker容器,将容器CONTAINER ID做成镜像,并命名为dockerxxxx

#将容器CONTAINER ID xxx做成镜像,并命名为dockerxxx
docker commit 容器id dockerxxx
#打包镜像并命名,保存输出到当前路径下
docker save -o dockerxxx.tar dockerxxx
#接下来如前面描述拉取镜像,执行验证即可
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐