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.通过浏览器访问能看到页面,正常。

你可能感兴趣的:(虚拟化技术,docker)