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.通過瀏覽器訪問能看到頁面,正常。