美文网首页程序猿江湖
Docker入门实践(CentOS7)

Docker入门实践(CentOS7)

作者: Fenco | 来源:发表于2019-08-06 00:59 被阅读0次

    前提:   虚拟机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

    2.1.2 搜索镜像

            docker search 镜像名称

    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

            (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 目录挂载

    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

    5.2 常用命令


    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

                                注意:由于创建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)

        本文链接:https://www.haomeiwen.com/subject/kybvdctx.html