Docker入门实践(CentOS7)

前提:   虚拟机1  CentOS7:192.168.0.19(与物理机桥接方式)

              虚拟机2  CentOS7:192.168.0.21(与物理机桥接方式)

              本机:192.168.0.5
1. Docker安装与启动

1.1 安装Docker

    (1)yum包更新到最新

  (2)安装需要的软件包,yum-util提供yum-config-manager功能,另外两个是devicemapper屈都依赖的

        sudo yum install -y  yum-utils devicemapper-persistent-data lvm2

    (3) 设置yum源为阿里云

        sudo yum-coonfig-manager --add-repo        http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

    (4) 安装docker

        sudo yum install docker-ce

    (5) 查看版本

        docker -v

1.2 设置ustc的镜像

    编辑该文件

        vi /etc/docker/daemon.json

    该文件中输入如下内容:

        {

        “registry-mirrors”:["https://docker.mirrors.ustc.edu.cn"]

        }


1.3 Docker的启动与停止

      systemctl 命令是系统服务管理器指令

        启动docker

            systemctl start docker

        停止docker

            systemctl stop docker

        重启docker

            systemctl restart docker

        查看docker状态

            systemctl status docker

        开机启动

            systemctl enable docker

        查看docker概要信息

            docker  info



2. 常用命令

2.1 镜像相关命令

2.1.1 查看镜像

        docker images

Docker入门实践(CentOS7)_第1张图片

2.1.2 搜索镜像

        docker search 镜像名称

Docker入门实践(CentOS7)_第2张图片

2.1.3 拉取镜像

        docker pull  镜像名称

        例如  docker  pull  centos:7

2.1.4 删除镜像

        docker  rmi  镜像ID

        删除所有镜像:docker rmi  'docker  images  -q'


2.2 容器相关命令

2.2.1 查看容器

        查看正在运行容器:  docker  ps

        查看所有容器: docker  ps  -a

        查看最后一次运行容器: docker ps -1

        查看停止容器: docker ps -f status=exited

2.2.2 创建与启动容器

        创建容器命令:docker run

Docker入门实践(CentOS7)_第3张图片

        (1) 交互式方式创建容器

            docker  run  -it  --name=容器名称  镜像名称:标签  /bin/bas

              此时,创建完毕后直接进入。

              进入容器后exit退出,容器状态自动变为exited.

        (2) 守护式方式创建容器

                docker  run  -di  --name=容器名称  镜像名称:标签

                此时,创建完毕后未进入容器

                登陆守护方式容器:docker exec -it 容器名称(或者ID) /bin/bash

                注意:本次创建容器时,即使上面交互式方式创建的容器mycentos已经关闭,此时仍然不能本次容器也为mycentos!!!


2.2.3 停止与启动容器

        停止容器:docker  stop  容器名称(或者ID)

        启动容器:docker  start  容器名称(或者ID)


2.2.4 文件拷贝

将文件拷贝到容器内:docker  cp  需要拷贝文件或目录  容器名称:容器目录

将文件拷贝出容器外:docker  cp  容器名称:容器目录  需要拷贝文件或目录


2.2.5 目录挂载

Docker入门实践(CentOS7)_第4张图片

2.2.6 查看容器IP地址

            docker  inspect 容器名称(或者ID)

直接查找到IP地址方式:


2.2.7 删除容器

        docker  rm  容器名称(或者ID)

        注意:1. 与删除镜像区别(删除镜像:docker  rmi  镜像ID)

                  2. 在删除镜像时,要把对应全部创建的容器删除才可以删除镜像!



3. 应用部署

3.1 MySQL部署

    (1) 拉取mysql镜像

                docker  pull centos/mysql-57-centos7

    (2) 创建容器

                docker  run  -di  --name=tensquare_mysql  -p  33306:3306  -e  MYSQL_PASSWORD=123456  mysql

                -p  代表端口映射,格式为  宿主机映射端口:容器运行端口

                -e 代表添加环境变量 MYSQL_ROOT_PASSWORD 是root用户的密码

    (3) 进入mysql容器

                  docker  exec  -it  tensquare_mysql  /bin/bash

    (4) 登陆mysql

                mysql  -u  root  -p

    (5) 远程登陆mysql

                连接宿主机IP并指定端口为33306,这样就可以操作容器的3306端口。


3.2 tomcat部署

    (1) 拉取镜像

                    docker  pull  tomcat:7-jre7

        (2) 创建容器

                    创建容器  -p 表示地址映射

                    docker  run  -di  --name=mytomcat  -p  9000:8080  -v /usr/local/webapps:/usr/local/tomcat/webapps  tomcat:7-jre7

      (3) 进入mysql容器

                    docker  exec  -it  mytomcat  /bin/bash

      (4) 远程访问:192.168.0.19:9000/index.jsp


3.3 Nginx部署

        (1) 拉取镜像

                    docker  pull  nginx

        (2) 创建容器

                    创建容器  -p 表示地址映射

                    docker  run  -di  --name=mynginx  -p  80:80  nginx


3.4 Redis部署

        (1) 拉取镜像

                    docker  pull redis

          (2) 创建容器

                    创建容器  -p 表示地址映射

                    docker  run  -di  --name=myredis  -p  6379:6379  redis



4. 迁移与备份

4.1  容器保存为镜像

            docker  commit  mynginx  mynginx_i

4.2  镜像备份

            docker  save  -o  mynginx.tar  mynginx_i

4.3  镜像恢复与迁移

            docker  load  -i  mynginx.tar

            -i  输入的文件

            docker  images  可看到镜像已恢复



5. Dockerfile

5.1 什么是Dockerfile

Docker入门实践(CentOS7)_第5张图片

5.2 常用命令

Docker入门实践(CentOS7)_第6张图片


5.3 使用脚本创建镜像

        (1)创建目录

                mkdir -p /usr/local/dockerjdk8

        (2)下载jdk-8u171-linux-x64.tar.gz并上传到服务器中/usr/local/dockerjdk8目录

        (3)在dockerjdk8目录下创建文件Dockerfile    vi  Dockerfile

                    #依赖镜像名称和ID

                    FROM centos7

                    #指定镜像创建者

                    MAINTAINER FENCO

                    #切换工作目录

                    WORKDIR  /usr

                    RUN  mkdir  /usr/local/java

                    #ADD  是相对路径jar,把java添加到容器

                    ADD  jdk-8u171-linux-x64.tar.gz  /usr/local/java/


                    #配置java环境变量

                    ENV  JAVA_HOME   /usr/local/java/jdk1.8.0_171

                    ENV  JRE_HOME   $JAVA_HOME/jre

                    ENV  CLASSPATH   $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH

                    ENV  PATH  $JAVA_HOME/bin:$PATH

Docker入门实践(CentOS7)_第7张图片

                            注意:由于创建jdk1.8镜像用到了docker.io/centos镜像,所以必须保证本地有该镜像。

             (4) 执行命令构建镜像

                       在dockerjdk8目录下执行:    docker   build  -t='jdk1.8'  .           最后面的点,表示该根目录

            (5) 查看镜像是否建立完成

                        docker  images



6. Docker私有仓库

6.1 私有仓库的搭建及配置

    (1) 拉取私有仓库镜像

        docker pull registry

      (2)  启动私有仓库容器

            docker  run  -di  --name=registry  -p  5000:5000  registry

     (3) 用浏览器访问:http://192.168.0.19:5000/v2/_catalog看到{“repositories”:[]}表示私有仓库搭建成功内容为空。

  (4)修改daemon.json

            vi  /etc/docker/daemon.json

            添加以下内容并保存退出。

            {"insecure-registries":["192.168.0.19:5000"]}    此步用于让docker信任私有仓库地址

  (5) 重启docker服务

            systemctl restart  docker


6.2 镜像的上传及下载到私有仓库

6.2.1镜像的上传

    (1) 标记次镜像为私有仓库的镜像

                docker tag jdk1.8 192.168.0.19:5000/jdk1.8

      (2) 上传标记镜像

                首先,上一步重启了docker服务,所以里面的registry容器也需要启动下。

                然后执行上传:docker  push  192.168.0.19:5000/jdk1.8

成功!


6.2.2 镜像的下载

在另外一台虚拟机中安装docker(192.168.0.21)

    (1)修改daemon.json

                vi  /etc/docker/daemon.json

                添加以下内容并保存退出。

                {"insecure-registries":["192.168.0.19:5000"]}    此步用于让docker信任私有仓库地址

    (2) 重启docker服务

                systemctl restart  docker

     (3) 下载标记镜像

                然后执行下载:docker  pull  192.168.0.19:5000/jdk1.8

你可能感兴趣的:(Docker入门实践(CentOS7))