首页 > 技术文章 > docker 学习笔记1(千峰教育)

dangdanghepingping 2020-12-27 17:44 原文

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>

 


 

 

 

  

推荐阅读