1.安裝docker
1.選擇國內的雲服務商,這里選擇阿里雲為例
curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -
2.安裝所需要的包
sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual
3.添加使用 HTTPS 傳輸的軟件包以及 CA 證書
sudo apt-get update sudo apt-get install apt-transport-https ca-certificates
4.添加GPG密鑰
sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
5.添加軟件源
echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" | sudo tee /etc/apt/sources.list.d/docker.list
6.添加成功后更新軟件包緩存
sudo apt-get update
7.安裝docker
sudo apt-get install docker-engine
8.啟動 docker
sudo systemctl enable docker
sudo systemctl start docker
2.安裝mysql鏡像(version 8.0)
1.下載鏡像
sudo su
docker pull mysql
2.啟動容器
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123 -d mysql
3.進入容器
docker exec -it mysql bash
4.設置mysql8.0外網訪問
mysql> grant all PRIVILEGES on *.* to root@'%' WITH GRANT OPTION; Query OK, 0 rows affected (0.01 sec) mysql> ALTER user 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER; Query OK, 0 rows affected (0.11 sec) mysql> ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; Query OK, 0 rows affected (0.11 sec) mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.01 sec)
3.部署SpringBoot項目
1.要在docker上發布springboot項目,需要使用dockerfile文件編譯項目的打包文件。
創建dockerfile文件:
#Docker image for springboot file run #基礎鏡像使用java FROM java:8 #VOLUME 指定臨時文件目錄為/tmp VOLUME /tmp #將jar包添加到容器中並更名為app.jar 前面為打包的項目包文件名 ADD springboot-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"]
2.將jar包和dockerfile文件上傳到部署有docker的服務器上的同一個目錄下。在該目錄下執行(-t 參數是指定此鏡像的tag名),制作鏡像。
docker build -t springboot-demo .
3.啟動容器:
docker run -d -p 8081:8866 spring-demo
備注:
docker run --name demo -p 80:8080 -d demo
查看日志
docker logs -f -t demo
注:
-d參數是讓容器后台運行
-p 是做端口映射,此時將服務器中的8081端口映射到容器中的8866端口
4.安裝nginx並掛在配置文件
1.獲取官方鏡像
docker pull nginx
2.使用nginx鏡像來創建nginx容器實例
docker run --name nginx-test -p 80:80 -d nginx
注:
run 創建容器實例
– name 容器命名
-v 映射目錄
-d 設置容器后台運行
-p 本機端口映射 將容器的80端口映射到本機的80端口
語句最后一個nginx是使用鏡像的名稱
3.將nginx關鍵目錄映射到本機
首先在本機創建nginx的一些文件存儲目錄
mkdir -p /root/nginx/www /root/nginx/logs /root/nginx/conf
注:
www: nginx存儲網站網頁的目錄
logs: nginx日志目錄
conf: nginx配置文件目錄
4.將nginx-test容器配置文件copy到本地
docker cp 481e121fb29f:/etc/nginx/nginx.conf /root/nginx/conf
5.創建新nginx容器nginx-web,並將www,logs,conf目錄映射到本地
docker run -d -p 81:80 --name nginx-web -v /root/nginx/www:/usr/share/nginx/html -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /root/nginx/logs:/var/log/nginx nginx
6.復制html文件到www目錄下 完成后重新訪問本機