1.安裝docker
(1)卸載以前安裝的Docker容器
sudo yum remove docker \ docker-client \ docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \ocker-engine
(2)安裝docker
yum install -y docker
(3)查看docker是否安裝成功
yum list installed |grep docker
(4)啟動(dòng)docker服務(wù)(并設(shè)置開機(jī)自啟)
systemctl start docker.service
systemctl enable docker.service
(5)查看docker服務(wù)狀態(tài) running 就是啟動(dòng)成功
systemctl status docker
(6)使用docker鏡像
systemctl status docker
(7)配置docker國(guó)內(nèi)鏡像(中國(guó)科學(xué)技術(shù)大學(xué))
在宿主機(jī)器編輯文件:vim /etc/docker/daemon.json
請(qǐng)?jiān)谠撆渲梦募屑尤耄](méi)有該文件的話,請(qǐng)先建一個(gè)):
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
(8)最后,需要重啟docker服務(wù)
systemctl restart docker.service
2.docker 安裝 redis
(1)拉取redis鏡像
docker pull redis
(2)查看本地鏡像
docker images
(3)運(yùn)行容器
docker run -itd --name redis-test -p 6379:6379 redis
(4)安裝成功 查看容器的運(yùn)行信息
docker ps
(5)連接測(cè)試使用 redis 服務(wù)
docker exec -it redis-test /bin/bash
(6)退出
exit
2.docker 安裝rabbitmq
(1)下載鏡像
docker pull rabbitmq:3.7-management
(2)查看鏡像
docker images
(3)創(chuàng)建rabbitmq容器
docker run -d --name myrabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.7-management
5672是項(xiàng)目中連接rabbitmq的端口(我這里映射的是5672),15672是rabbitmq的web管理界面端口(我映射為15672) 初始賬號(hào):guest 初始密碼:guest
(4)查看容器
docker ps
3.docker 安裝postgresql
(1)拉取鏡像
docker pull postgres:9.6
(2)啟動(dòng)容器
docker run --name postgres -e POSTGRES_PASSWORD=password -p 5432:5432 -v /usr/postgresql/data:/var/lib/postgresql/data -d postgres
端口映射的是5432
run: 創(chuàng)建并運(yùn)行一個(gè)容器;
--name: 指定創(chuàng)建的容器的名字;
-e POSTGRES_PASSWORD=password: 設(shè)置環(huán)境變量,指定數(shù)據(jù)庫(kù)的登錄口令為password;
-p 5432:5432: 端口映射將容器的5432端口映射到外部機(jī)器的5432端口;
-d postgres 指定使用postgres作為鏡像。
登錄的初始用戶:postgres 登錄的初始密碼:password
(3)查看容器
docker ps
4.docker 安裝jdk 并配置環(huán)境變量
(1)docker下載centos鏡像(用作配置jdk環(huán)境系統(tǒng))
docker pull centos #版本號(hào)可以自己加,默認(rèn)拉取最新的
(2)查看本地鏡像
docker images
例如: REPOSITORY 鏡像名稱;TAG 鏡像標(biāo)簽 (后面可用于發(fā)布到個(gè)人dockerhub上); IMAGE ID 是鏡像ID;CREATED 創(chuàng)建時(shí)間;SIZE 大小
[root@VM_0_9_centos etc]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat latest 3639174793ba 6 weeks ago 463MB
mysql latest 990386cbd5c0 7 weeks ago 443MB
centos latest 9f38484d220f 3 months ago 202MB
hello-world latest fce289e99eb9 6 months ago 1.84kB
(3)創(chuàng)建容器
容器是基于鏡像創(chuàng)建的,執(zhí)行鏡像生成容器,方可進(jìn)入容器
啟動(dòng)容器命令: docker run <相關(guān)參數(shù)> <鏡像 ID> <初始命令>
docker run -i -t -v /root/software/:/mnt/software/ 9f38484d220f /bin/bash
參數(shù)解析
-i:表示以“交互模式”運(yùn)行容器
-t:表示容器啟動(dòng)后會(huì)進(jìn)入其命令行
-v:表示需要將本地哪個(gè)目錄掛載到容器中,格式:-v <宿主機(jī)目錄>:<容器目錄>
/bin/bash:一旦容器啟動(dòng),需要執(zhí)行的命令,當(dāng)前使用 "/bin/bash", 表示啟動(dòng)后直接進(jìn)bash shell
/root/software是宿主機(jī)器(Linux)上創(chuàng)建的一個(gè)文件夾;
/mnt/software是centos的容器里面的目錄文件
這里掛載的意思就是 9f38484d220f 創(chuàng)建的容器訪問(wèn) /mnt/software/ 目錄下的文件就相當(dāng)于訪問(wèn) 宿主機(jī)的 /root/software/下的文件,且兩者文件夾里內(nèi)容相同
(4)退出容器
exit
(5)進(jìn)入容器后的查看命令
docker ps : 查看當(dāng)前運(yùn)行的容器信息(上面的退出方式就會(huì)默認(rèn)關(guān)閉容器)
docker ps -a : 查看關(guān)閉的容器
(6)啟動(dòng)容器和進(jìn)入容器
docker start [容器ID]:?jiǎn)?dòng)容器
docker exec -it [容器ID] /bin/bash : 進(jìn)入容器
這里還是以 docker run -i -t -v /root/software/:/mnt/software/ 9f38484d220f /bin/bash 命令進(jìn)入容器
(7)在容器內(nèi)部安裝jdk1.8
下載 jdk的 tar包,通過(guò)ftp工具上傳到宿主服務(wù)器的/root/software/文件下,因?yàn)榍懊孀隽藪燧d,所以待會(huì)進(jìn)入docker容器里的/mnt/software/文件夾下也是可以看到的
(8)進(jìn)入centos容器中的/mnt/software文件夾
docker run -i -t -v /root/software/:/mnt/software/ 9f38484d220f /bin/bash 進(jìn)入容器
cd /mnt/software 進(jìn)入/mnt/software
(9)解壓
tar -zxvf jdk-8u211-linux-x64.tar.gz
(10)設(shè)置java 環(huán)境變量,配置profile
vi /etc/profile
在文件末尾加上
JAVA_HOME=/opt/jdk/
JAVA_BIN=/opt/jdk/bin
JRE_HOME=/opt/jdk/jre
CLASSPATH=/opt/jdk/jre/lib:/opt/jdk/lib:/opt/jdk/jre/lib/charsets.jar
export JAVA_HOME JAVA_BIN JRE_HOME PATH CLASSPATH
使得配置立馬有效
source /etc/profile
配置 bashrc
vi ~/.bashrc
在文件末尾加上
export JAVA_HOME=/opt/jdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
使得配置立馬有效
source ~/.bashrc
(11)查看jdk版本
java -version
(12) 使用vi命令時(shí) 出現(xiàn)vi: command not found 這是因?yàn)関im沒(méi)有安裝。 使用如下命令安裝
apt-get update
apt-get install vim
5.停止和刪除容器
docker stop 容器id 停止容器
docker rm 容器id 刪除容器
docker rmi -f 鏡像id 刪除鏡像
docker run -it 容器image /bin/bash 啟動(dòng)容器
6.Docker部署SpringBoot項(xiàng)目
(1)編寫Dockerfile文件
# Docker image for springboot file run
# VERSION 0.0.1
# Author: eangulee
# 基礎(chǔ)鏡像使用java
FROM java:8
# VOLUME 指定了臨時(shí)文件目錄為/tmp。
# 其效果是在主機(jī) /var/lib/docker 目錄下創(chuàng)建了一個(gè)臨時(shí)文件,并鏈接到容器的/tmp
VOLUME /tmp
# 將jar包添加到容器中并更名為app.jar demo-0.0.1-SNAPSHOT.jar jar名稱
ADD demo-0.0.1-SNAPSHOT.jar app.jar
# 運(yùn)行jar包
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
解釋下這個(gè)配置文件: VOLUME 指定了臨時(shí)文件目錄為/tmp。其效果是在主機(jī) /var/lib/docker 目錄下創(chuàng)建了一個(gè)臨時(shí)文件,并鏈接到容器的/tmp。該步驟是可選的,如果涉及到文件系統(tǒng)的應(yīng)用就很有必要了。/tmp目錄用來(lái)持久化到 Docker 數(shù)據(jù)文件夾,因?yàn)?Spring Boot 使用的內(nèi)嵌 Tomcat 容器默認(rèn)使用/tmp作為工作目錄 項(xiàng)目的 jar 文件作為 “app.jar” 添加到容器的 ENTRYPOINT 執(zhí)行項(xiàng)目 app.jar。為了縮短 Tomcat 啟動(dòng)時(shí)間,添加一個(gè)系統(tǒng)屬性指向 “/dev/./urandom” 作為 Entropy Source 如果是第一次打包,它會(huì)自動(dòng)下載java 8的鏡像作為基礎(chǔ)鏡像,以后再制作鏡像的時(shí)候就不會(huì)再下載了。 (2)部署文件 在服務(wù)器新建一個(gè)docker文件夾,將maven打包好的jar包和Dockerfile文件復(fù)制到服務(wù)器的docker文件夾下
(3)制作鏡像
cd /root/docker
docker build -t springbootdemo4docker .
注意點(diǎn) …..
(4)查看鏡像
docker images
(5)啟動(dòng)容器
docker run -d -p 8761:8761 springbootdemo4docker文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-627733.html
docker run -it springbootdemo4docker /bin/bash文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-627733.html
到了這里,關(guān)于docker部署教程(小白都會(huì))的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!