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
1.查看本地镜像 docker images
2.查看本地进程 docker ps -a
CONTAINER ID: 容器 ID。
IMAGE: 使用的镜像。
COMMAND: 启动容器时运行的命令。
CREATED: 容器的创建时间。
STATUS: 容器状态。
状态有7种:
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 - 容器名称
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容器的库。
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.通过浏览器访问能看到页面,正常。