Docker入門(構建springboot和mysql容器)

CentOS 安裝 Docker

安裝 Docker

1.下載安裝docker $ sudo yum install docker

2.運行docker $ sudo systemctl start docker

3.檢查docker是否安裝成功 $ sudo docker run hello-world

4.安裝ubuntu鏡像 $ sudo docker pull ubuntu

5.運行ubuntu鏡像 $ sudo docker run ubuntu:15.10

Docker常用命令

1.查看本地鏡像 docker images

2.查看本地進程 docker ps -a

CONTAINER ID: 容器 ID。

IMAGE: 使用的鏡像。

COMMAND: 啓動容器時運行的命令。

CREATED: 容器的創建時間。

STATUS: 容器狀態。

狀態有7種:

  • created(已創建)
  • restarting(重啓中)
  • running(運行中)
  • removing(遷移中)
  • paused(暫停)
  • exited(停止)
  • dead(死亡)

PORTS: 容器的端口信息和使用的連接類型(tcp\udp)。

NAMES: 自動分配的容器名稱。

3.以交互方式運行鏡像(進入鏡像) docker run -i -t ubuntu:15.10 /bin/bash

4.在鏡像中退出 exit或者 CTRL+D

5.停止容器 docker stop 容器id

6.刪除容器 docker rm 容器id

7.啓動一個停止的容器 docker start 容器id

8.重啓容器 docker restart 容器id

9.後臺運行容器 docker run -itd --name ubuntu-test ubuntu:15.10 /bin/bash

10.進入後臺的容器 docker exec -it 243c32535da7 /bin/bash

11.導出容器 docker export 容器id> 名稱.tar

12.導入容器 cat ubuntu1.tar | docker import - 容器名稱

Docker構建java應用容器

mysql容器

1.安裝mysql docker pull mysql:5.6

2.運行容器,映射端口 docker run -p 3306:3306 --name mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.6

3.報錯,端口重複,刪除宿主機相應端口號,查詢命令 fuser -v -n tcp 3306和ps -ef|grep mysql 刪除相應pid。這樣宿主機mysql服務就停止了,需要開啓重新啓動即可。

4.再次啓動容器 docker start dd062c56b37d(容器id)

5.通過mysql -h 127.0.0.1 -u root -p 進行連接 ,發現庫是新庫,說明現在連接的是mysql容器的庫。

springboot容器

1.在宿主機裏創建一個文件夾,裏面用於放dockerfile和springboot項目jar包

2.springboot項目名爲:sboot-v2.jar,端口爲8081,數據庫地址爲localhost

3.編寫dockerfile文件。

FROM hub.c.163.com/xbingo/jdk8
ADD ./sboot-v2.jar  /sboot-v2.jar
EXPOSE 8081
CMD ["java","-jar","/sboot-v2.jar"]

文件解釋:第一行下載jdk

第二行將jar包放入容器內

第三行 映射端口

第四行 運行的命令

4.構建容器,docker build -t sboot-v2 .    (注意後面還要個.)

5.運行容器 docker run -d -p 8081:8081 --name spring sboot-v2

到這裏發現項目並沒有啓動成功,原因是沒連上數據庫。解決:改用宿主機的網絡。

6.刪掉之前的容器,再運行一次,docker run --net=host -d -p 8081:8081 --name spring sboot-v2

發現依然沒有連上數據庫。

7.通過資料搜索,要連接mysql容器,需保證springboot裏的數據庫連接名字和mysql容器名一致。

如我的springboot裏的數據庫配置:

jdbc:mysql://localhost:3306/sboot

 所以將上面創建的mysql容器重命名爲localhost

8.重命名mysql容器,sudo docker rename mysql localhost

9.再次運行容器docker run --net=host -d -p 8081:8081 --name spring sboot-v2

10.查看日誌 docker logs spring ,發現正常啓動

11.通過瀏覽器訪問能看到頁面,正常。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章