本文將介紹如何進(jìn)行部署docker容器和在容器中進(jìn)行部署Tomcat计贰,MySQL,Nginx等蒂窒。
一躁倒、Docker容器的安裝
請自行準(zhǔn)備好一個Linux環(huán)境進(jìn)行操作
1、yum包更新到最新洒琢,運(yùn)行以下命令:
yum update
2秧秉、安裝docker所需要的軟件包:
yum install -y yum-utils device-mapperpersistent-date lvm2
3、設(shè)置yum源為阿里云
yum-config-manager --add-repo http://mirrors.aliyun.com
/docker-ce/linux/centos/docker-ce.repo
4衰抑、安裝docker
yum install docker-ce
5象迎、安裝后查看docker版本
docker -v
二、鏡像和容器的相關(guān)操作
1呛踊、設(shè)置一個國內(nèi)的鏡像站點(diǎn)砾淌,如果說不設(shè)置的話,你在進(jìn)行拉取鏡像時速度會非常的慢谭网,進(jìn)入到/etc/docker/的路徑下編輯vim daemon.json文件(如果沒有則手動創(chuàng)建該文件)
編輯內(nèi)容為:
{
"registry-mirrors": ["https://mirrors.ustc.edu.cn"]
}
2汪厨、docker基礎(chǔ)命令:
啟動:systemctl start docker
關(guān)閉:systemctl stop docker
重啟:systemctl restart docker
開機(jī)自啟:systemctl enable docker
查看概要信息:docker info
查看幫助文檔:docker --help
查看docker狀態(tài):systemctl status docker
永久關(guān)閉防火墻命令:
systemctl disable firewalld或chkconfig iptables off
3、鏡像的相關(guān)命令:
查看鏡像:docker images
搜索鏡像:docker search + 鏡像名稱
拉取鏡像:docker pull + 鏡像名稱
刪除單個鏡像:docker rmi + 鏡像名稱或鏡像ID(刪除的前提是鏡像中不存在容器)
刪除所有鏡像:docker rmi `docker images -q`
4愉择、容器的相關(guān)命令:
查看當(dāng)前正在運(yùn)行的容器:docker ps
查看所有的容器:docker ps -a
創(chuàng)建并運(yùn)行交互式容器:docker run -it --name=容器名稱 鏡像名稱 /bin/bash
創(chuàng)建并運(yùn)行守護(hù)式容器:docker run -di --name=容器名稱 鏡像名稱
進(jìn)入容器:docker exec -it 容器名稱 /bin/bash
退出容器:exit
啟動容器:docker start 容器名稱
停止容器:docker stop 容器名稱
文件拷貝:docker cp 需要拷貝的文件 容器名稱:容器目錄劫乱,也可以將文件從容器中拷貝出來:docker cp 容器名稱:容器目錄 需要拷貝的文件
目錄掛載方式創(chuàng)建容器:
docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=容器名稱 鏡像名稱(作用:可以通過修改Linux主機(jī)從而修改容器)
查看容器IP地址:docker inspect 容器名稱或容器ID
刪除容器:docker rm 容器名稱(刪除的前提必須是容器已處于停止?fàn)顟B(tài))
關(guān)于在容器內(nèi)進(jìn)行下載的相關(guān)內(nèi)容:
一般我們在容器內(nèi)是不存在vim等的命令的,如果需要用到vim時薄辅,我們該如何進(jìn)行安裝呢?這里介紹2種情況:
1抠璃、通過apt-get
先更新apt-get update
再安裝apt-get install vim
2站楚、通過yum
先更新:yum update
再安裝:yum install vim
5、MySQL部署:
首先拉取MySQL鏡像:docker pull centos/mysql-57-centos7
然后創(chuàng)建MySQL容器:
docker run -di --name=docker_mysql -p 33326:3306-v/usr/local/
myhtml/:/usr/local -e MYSQL_ROOT_PASSWORD=123456 centos
/mysql-57-centos7?
6搏嗡、Tomcat部署:
第一種方式:通過拉取Tomcat鏡像進(jìn)行部署
首先拉取Tomcat鏡像:docker pull tomcat
然后創(chuàng)建Tomcat容器:
docker?run?-di --name=docker_tomcat-p?8080:8080 -v /usr/local/
tomcat?:/usr/local/tomcat/
第二種方式:通過編寫Dockerfile進(jìn)行部署
首先創(chuàng)建Dockerfile:
Dockerfile的內(nèi)容為:
FROM centos?
#作者
MAINTAINER caoyunpu 2562478702@qq.com
#拷貝tomcat jdk 到鏡像并解壓
ADD apache-tomcat-8.5.55.tar.gz /usr/local/tomcat
ADD jdk-8u161-linux-x64.tar.gz /usr/local/jdk
#定義交互時登錄路徑
ENV MYPATH /usr/local
WORKDIR $MYPATH
#配置jdk 和tomcat環(huán)境變量
ENV JAVA_HOME /usr/local/jdk/jdk1.8.0_161
ENV CATALINA_HOME /usr/local/tomcat/apache-tomcat-8.5.55
ENV CATALINA_BASE /usr/local/tomcat/apache-tomcat-8.5.55
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME
/lib:$CATALINA_HOME/bin
#設(shè)置暴露的端口
EXPOSE 7062
#運(yùn)行tomcat
CMD /usr/local/tomcat/apache-tomcat-8.5.55/bin/startup.sh && tail -f /usr/local/tomcat/apache-tomcat-8.5.55/logs/catalina.out
編寫后進(jìn)行wq保存退出窿春,并且下面的運(yùn)行創(chuàng)建鏡像命令必須要在Dockerfile文件的當(dāng)前目錄下進(jìn)行運(yùn)行:
docker build -f Dockerfile -t yunpu/tomcat:1.6 .
然后根據(jù)創(chuàng)建的Tomcat鏡像進(jìn)行創(chuàng)建容器:
docker run -di --name=ruoyi -p 8889:7062 --link ruoyi-redis:ruoyi-redis -v/usr/local/tomcat/logs:/usr/local/tomcat1/apache
-tomcat-8.5.30/logs/ -v /usr/local/tomcat/webapps:/usr/local/tomcat1
/apache-tomcat-8.5.30/webapps/ -v /usr/local/tomcat/conf:/usr/local/
tomcat1/apache-tomcat-8.5.30/conf/ yunpu/tomcat:1.6
注意點(diǎn):因為我們在創(chuàng)建 Dockerfile時設(shè)置了端口,所以相應(yīng)的映射文件時Tomcat的端口也要保持一致采盒,否則會出現(xiàn)容器啟動正常旧乞,卻無法訪問的現(xiàn)象
下圖為我部署后正常訪問Tomcat項目的截圖
7、Nginx部署:
首先拉取Nginx鏡像:docker pull nginx
然后創(chuàng)建Nginx容器:docker run -di --name=docker_nginx -p 80:80?
nginx磅氨,出現(xiàn)下圖表示安裝Nginx成功
8尺栖、Redis部署:
首先拉取Redis鏡像:docker pull redis
然后創(chuàng)建Redis容器:docker run -di --name=docker_redis -p 6379:6379
redis
通過工具訪問Redis,出現(xiàn)以下截圖代表部署成功
注意點(diǎn):當(dāng)我們Tomcat項目需要訪問Redis時烦租,就需要涉及到容器之間的調(diào)用延赌,需要注意修改Java項目中的Redis容器的IP
9除盏、Dockerfile
9.1、Dockerfile的常用命令:
命令 | 作用 |
FROM?images_name:tag | 聲明使用哪個基礎(chǔ)鏡像啟動構(gòu)建流程 |
MAINTAINER?user_name | 聲明鏡像創(chuàng)建者 |
ENV?key?value | 設(shè)置環(huán)境變量(可以寫多條) |
RUN?command | dockerfile的核心部分(可以寫多條) |
ADD?source_dir/file dest_dir/file | 將宿主機(jī)的文件復(fù)制到容器內(nèi)挫以,如果是一個壓縮文件者蠕,將會在復(fù)制后自動解壓 |
COPY source_dir/file dest_dir/file | 和ADD相似,但是如果有壓縮文件并不能解壓 |
workdir path_dir | 設(shè)置工作目錄 |
9.2掐松、使用Dockerfile構(gòu)建一個鏡像
1踱侣、先在Linux中mkdir一個專門放置Dockerfile文件的目錄,并且將壓縮包放置在該目錄中
mkdir?-p /usr/local/dockertomcat
2大磺、構(gòu)建Dockerfile文件
vim?/usr/local/dockertomcat/Dockerfile
文件內(nèi)容為:
FROM centos?
#作者
MAINTAINER caoyunpu 2562478702@qq.com
#拷貝tomcat jdk 到鏡像并解壓
ADD apache-tomcat-8.5.55.tar.gz /usr/local/tomcat
ADD jdk-8u161-linux-x64.tar.gz /usr/local/jdk
#定義交互時登錄路徑
ENV MYPATH /usr/local
WORKDIR $MYPATH
#配置jdk 和tomcat環(huán)境變量
ENV JAVA_HOME /usr/local/jdk/jdk1.8.0_161
ENV CATALINA_HOME /usr/local/tomcat/apache-tomcat-8.5.55
ENV CATALINA_BASE /usr/local/tomcat/apache-tomcat-8.5.55
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME
/lib:$CATALINA_HOME/bin
#設(shè)置暴露的端口
EXPOSE 7062
#運(yùn)行tomcat
CMD /usr/local/tomcat/apache-tomcat-8.5.55/bin/startup.sh && tail -f /usr/local/tomcat/apache-tomcat-8.5.55/logs/catalina.out
3抡句、創(chuàng)建鏡像:
docker build -f Dockerfile -t yunpu/tomcat:1.6 .
下圖為構(gòu)建成功后的截圖
4、(擴(kuò)展)根據(jù)構(gòu)建的鏡像進(jìn)行創(chuàng)建Tomcat容器:
docker run -di --name=ruoyi -p 8889:7062 --link ruoyi-redis:
ruoyi-redis -v /usr/local/tomcat/logs:/usr/local/tomcat1/
apache-tomcat-8.5.30/logs/ -v /usr/local/tomcat/webapps:/
usr/local/tomcat1/apache-tomcat-8.5.30/webapps/ -v /usr/local/
tomcat/conf:/usr/local/tomcat1/apache-tomcat-8.5.30/conf/
yunpu/tomcat:1.6
注意點(diǎn):由于我們在自己構(gòu)建的Tomcat鏡像時是暴露了新的端口量没,所以我們需要將Tomcat的修改端口路徑也映射出來玉转,這樣我們就可以方便的修改端口了
10、Docker私有倉庫:
10.1殴蹄、docker私有倉庫的搭建與配置
1究抓、拉取私有倉庫鏡像:
docker pull registry
2、啟動私有倉庫容器:
docker run?-di?--name=registry -p 5000:5000 registry
3袭灯、打開瀏覽器訪問宿主機(jī):http://192.168.1.81:5000/v2/_catalog刺下,出現(xiàn)下圖待表私有倉庫搭建成功
4、修改daemon.json
vim /etc/docker/daemon.json
添加以下內(nèi)容稽荧,保存退出:
"insecure-registries":["192.168.1.81:5000"]
修改后一定要重啟docker服務(wù)
systemctl restart docker
10.2橘茉、鏡像上傳私有倉庫
1、標(biāo)記此鏡像為私有倉庫的鏡像
docker tag centos/mysql-57-centos7 192.168.1.81:5000/mysql
2姨丈、上傳標(biāo)記的鏡像
由于我們之前重啟了docker服務(wù)畅卓,所以我們需要把registry容器啟動起來在進(jìn)行上傳鏡像
docker?start registry
docker push?192.168.1.81:5000/mysql
上傳成功后,我們可以發(fā)現(xiàn)多了個MySQL蟋恬,就代表我們上傳鏡像成功
至此翁潘,本次的docker安裝與部署介紹到這里
本文使用 文章同步助手 同步