docker 学习笔记1(千峰教育)
1 docker里的几个概念:
- 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。就行maven的仓库一样.(国外的中央仓库, 国内的如网易蜂巢/daoCloud),其中daoCloud不需要登录(https://hub.daocloud.io/)
镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器 可以被创建、启动、停止、删除、暂停等。
2. 安装docker(命令可以从https://www.runoob.com/docker/centos-docker-install.html复制)
(1) 下载docker的依赖环境
yum install -y yum-utils device-mapper-persistent-data lvm2
(2)设置docker的镜像源。
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
(3) 安装docker
yum makacache fast
yum -y install docker-ce
(4)启动docker并设置开机自启动
启动:systemctl start docker
开机自动启动:systemctl enabled docker
(5)测试docker是否安装成功
docker run hello-world
3. 镜像操作
(1)拉取镜像到本地
docker pull 镜像名称[:tag]
docker pull daocloud.io/library/tomcat:8.5.14-jre8
(2) 查看本地所有镜像
docker images
(3) 删除镜像
docker rmi 镜像的IMAGE ID
4. 容器操作
(1)创建并运行容器
docker run 镜像的IMAGE ID | 镜像名称[:tag]
常用参数
-d 后台运行
-p 宿主机linux的端口: 容器的端口 为了映射当前linux的端口和容器的端口
--name 指定容器名称
如: 运行命令docker run -d -p 8081:8080 --name tomcat a0fdb后, 就可以在浏览器中访问http://192.168.xx.xx:8081/可以出现tomcat了;
(2)查看正在运行的容器
docker ps [-qa] ps是 process status的缩写
-a 查看全部, 包括没有运行的容器
-q 只查看容器的标识, 不查看其他信息
(3)查看日志
docker logs -f 容器id | 容器name
-f 可以滚动查看日志最后几行
(4) 进入容器内部
docker exec -it 容器id bash
exit 退出容器
(5) 删除容器(删除前必须先停止容器)
docker stop 容器id
docker rm 容器id
(6) 停止容器 和 启动容器: 容器的停止和启动只是容器的两种状态, 而不是删除容器, 这两种状态下的容器id是不变的;
docker stop 容器id | 容器name
(7)启动容器 : 一旦容器被创建完, 在退出状态启动容器就用该命令
docker start 容器id | 容器name
5. docker应用
(1)准备mysql容器(https://hub.daocloud.io/repos/fa51c1d6-9dc2-49d9-91ac-4bbfc24a1bda)
docker run --name mysql -e MYSQL_ROOT_PASSWORD=yourpassword -d -p 3306:3306 daocloud.io/mysql:5.7.4
(然后可以用navcat来管理mysql数据库: 建立和mysql的连接后, 建库建表)
(2)将项目打war包, (注意引入路径, mysql连接地址改过来)
命令: mvn clean package
(3) 准备tomcat容器
[1] 查看镜像, (如果没有去拉取)
docker images
[2]启动容器
docker run -d -p 8080:8080 --name tomcat 镜像id
[3]将war包放到tomcat容器即可: 将war包放到webapps下
docker cp 文件名称 容器id:容器内部路径
(docker cp ssm.war tomcat容器id:/usr/local/tomcat/webapps/)
[4]查看tomcat日志
docker logs -f tomcat
注意: 我在pom文件中
<!--防止文件放到dao下而不是resource下找不到mapping.xml文件-->
<!--更改maven编译规则-->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<!--指定放到dao文件夹下的daomappers文件夹下-->
<include>com.qf.dao.daoMapper.*.xml</include>
<!--也可以直接放在dao文件夹下-->
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<!--添加resources打包, 如果不添加, 则不包含,打出来的war包不会有resources里的文件-->
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>