目錄
- 1.安裝docker
- 2.docker 安裝 redis
- 3.docker 安裝rabbitmq
- 4.docker 安裝postgresql
- 5.docker 安裝jdk 并配置環境變量
- 6.停止和刪除容器
- 7.Docker部署SpringBoot項目
- 總結
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)啟動docker服務(并設置開機自啟)
systemctl start docker.service systemctl enable docker.service
(5)查看docker服務狀態 running 就是啟動成功
systemctl status docker
(6)使用docker鏡像
systemctl status docker
(7)配置docker國內鏡像(中國科學技術大學)
在宿主機器編輯文件:vim /etc/docker/daemon.json 請在該配置文件中加入(沒有該文件的話,請先建一個): { "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] }
(8)最后,需要重啟docker服務
systemctl restart docker.service
2.docker 安裝 redis
(1)拉取redis鏡像
docker pull redis
(2)查看本地鏡像
docker images
(3)運行容器
docker run -itd --name redis-test -p 6379:6379 redis
(4)安裝成功 查看容器的運行信息
docker ps
(5)連接測試使用 redis 服務
docker exec -it redis-test /bin/bash
(6)退出
exit
3.docker 安裝rabbitmq
(1)下載鏡像
docker pull rabbitmq:3.7-management
(2)查看鏡像
docker images
(3)創建rabbitmq容器
docker run -d --name myrabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.7-management 5672是項目中連接rabbitmq的端口(我這里映射的是5672),15672是rabbitmq的web管理界面端口(我映射為15672) 初始賬號:guest 初始密碼:guest
(4)查看容器
docker ps
4.docker 安裝postgresql
(1)拉取鏡像
docker pull postgres:9.6
(2)啟動容器
docker run --name postgres -e POSTGRES_PASSWORD=password -p 5432:5432 -v /usr/postgresql/data:/var/lib/postgresql/data -d postgres 端口映射的是5432 run: 創建并運行一個容器; --name: 指定創建的容器的名字; -e POSTGRES_PASSWORD=password: 設置環境變量,指定數據庫的登錄口令為password; -p 5432:5432: 端口映射將容器的5432端口映射到外部機器的5432端口; -d postgres 指定使用postgres作為鏡像。 登錄的初始用戶:postgres 登錄的初始密碼:password
(3)查看容器
docker ps
5.docker 安裝jdk 并配置環境變量
(1)docker下載centos鏡像(用作配置jdk環境系統)
docker pull centos #版本號可以自己加,默認拉取最新的
(2)查看本地鏡像
docker images 例如: REPOSITORY 鏡像名稱;TAG 鏡像標簽 (后面可用于發布到個人dockerhub上); IMAGE ID 是鏡像ID;CREATED 創建時間;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)創建容器
容器是基于鏡像創建的,執行鏡像生成容器,方可進入容器 啟動容器命令: docker run <相關參數> <鏡像 ID> <初始命令> docker run -i -t -v /root/software/:/mnt/software/ 9f38484d220f /bin/bash 參數解析 -i:表示以“交互模式”運行容器 -t:表示容器啟動后會進入其命令行 -v:表示需要將本地哪個目錄掛載到容器中,格式:-v <宿主機目錄>:<容器目錄> /bin/bash:一旦容器啟動,需要執行的命令,當前使用 "/bin/bash", 表示啟動后直接進bash shell /root/software是宿主機器(Linux)上創建的一個文件夾; /mnt/software是centos的容器里面的目錄文件 這里掛載的意思就是 9f38484d220f 創建的容器訪問 /mnt/software/ 目錄下的文件就相當于訪問 宿主機的 /root/software/下的文件,且兩者文件夾里內容相同
(4)退出容器
exit
(5)進入容器后的查看命令
docker ps : 查看當前運行的容器信息(上面的退出方式就會默認關閉容器) docker ps -a : 查看關閉的容器
(6)啟動容器和進入容器
docker start [容器ID]:啟動容器 docker exec -it [容器ID] /bin/bash : 進入容器 這里還是以 docker run -i -t -v /root/software/:/mnt/software/ 9f38484d220f /bin/bash 命令進入容器
(7)在容器內部安裝jdk1.8
下載 jdk的 tar包,通過ftp工具上傳到宿主服務器的/root/software/文件下,因為前面做了掛載,所以待會進入docker容器里的/mnt/software/文件夾下也是可以看到的
(8)進入centos容器中的/mnt/software文件夾
docker run -i -t -v /root/software/:/mnt/software/ 9f38484d220f /bin/bash 進入容器 cd /mnt/software 進入/mnt/software
(9)解壓
tar -zxvf jdk-8u211-linux-x64.tar.gz
(10)設置java 環境變量,配置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命令時 出現vi: command not found 這是因為vim沒有安裝。 使用如下命令安裝
apt-get update apt-get install vim
6.停止和刪除容器
docker stop 容器id 停止容器 docker rm 容器id 刪除容器 docker rmi -f 鏡像id 刪除鏡像 docker run -it 容器image /bin/bash 啟動容器
7.Docker部署SpringBoot項目
(1)編寫Dockerfile文件
# Docker image for springboot file run # VERSION 0.0.1 # Author: eangulee # 基礎鏡像使用java FROM java:8 # VOLUME 指定了臨時文件目錄為/tmp。 # 其效果是在主機 /var/lib/docker 目錄下創建了一個臨時文件,并鏈接到容器的/tmp VOLUME /tmp # 將jar包添加到容器中并更名為app.jar demo-0.0.1-SNAPSHOT.jar jar名稱 ADD demo-0.0.1-SNAPSHOT.jar app.jar # 運行jar包 RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
解釋下這個配置文件: VOLUME 指定了臨時文件目錄為/tmp。其效果是在主機 /var/lib/docker 目錄下創建了一個臨時文件,并鏈接到容器的/tmp。該步驟是可選的,如果涉及到文件系統的應用就很有必要了。/tmp目錄用來持久化到 Docker 數據文件夾,因為 Spring Boot 使用的內嵌 Tomcat 容器默認使用/tmp作為工作目錄 項目的 jar 文件作為 “app.jar” 添加到容器的 ENTRYPOINT 執行項目 app.jar。為了縮短 Tomcat 啟動時間,添加一個系統屬性指向 “/dev/./urandom” 作為 Entropy Source 如果是第一次打包,它會自動下載java 8的鏡像作為基礎鏡像,以后再制作鏡像的時候就不會再下載了。 (2)部署文件 在服務器新建一個docker文件夾,將maven打包好的jar包和Dockerfile文件復制到服務器的docker文件夾下
(3)制作鏡像
cd /root/docker docker build -t springbootdemo4docker .
注意點 …..
(4)查看鏡像
docker images
(5)啟動容器
docker run -d -p 8761:8761 springbootdemo4docker
docker run -it springbootdemo4docker /bin/bash