docker(一)---docker入门

docker是什么

这里用简单的几句话描述docker作了什么事情。html

  • docker是一个能够建立、管理容器的东西。能够理解为docker里面存放了许多容器
  • 容器就是一个精简版的linux系统,这个系统只有基本的环境供以使用,里面能够运行程序(能够是mysql,能够是nginx,能够是redis等)。
  • 容器的建立是依赖于镜像的,镜像能够看做是一个模板,docker能够根据镜像生成一个容器实例,假如你须要一个容器中放入mysql,那么就去docker的镜像仓库拉取一个mysql镜像(可指定版本),而后docker能够基于这个镜像建立一个mysql容器,这样就能在docker中运行使用一个只含有mysql的系统了。
  • 容器的存在使咱们能够方便作不少事情,好比项目须要mysql、nginx环境来运行,能够直接建立mysql和nginx容器供项目使用,不须要在服务器上下载、安装、配置这些环境,容器内部已经包含了这些必备的东西。同时容器还能够很方便的移植,好比咱们须要切换服务器,这些项目正在使用的容器能够直接打包带走放在另外一个服务器上。

docker安装

  • 若是机器安装过docker先卸载旧版mysql

    $ sudo yum remove docker \
                      docker-client \
                      docker-client-latest \
                      docker-common \
                      docker-latest \
                      docker-latest-logrotate \
                      docker-logrotate \
                      docker-engine
    复制代码
  • 使用存储库安装linux

    在新主机上首次安装Docker Engine以前,须要设置Docker存储库。以后,您能够从存储库安装和更新Docker。nginx

    安装yum-utils软件包(提供yum-config-manager 实用程序)并设置稳定的存储库。redis

    $ sudo yum install -y yum-utils
     $ sudo yum-config-manager \
        --add-repo \
        https://download.docker.com/linux/centos/docker-ce.repo
    复制代码
  • 安装完成后,运行下面的命令,验证是否安装成功。sql

$ docker version
# 或者
$ docker info
复制代码

Hello Word

好比如今须要一个nginx,首先执行docker

docker pull nginx  # 默认最新版,若是须要指定版本,直接 nginx:version
复制代码

拉取成功以后,可使用docker images查看shell

[root@izbp109k5j3dul0ejalpf5z html]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              4571e56e27f0        2 days ago          132MB
复制代码

而后启动容器centos

[root@izbp109k5j3dul0ejalpf5z html]# docker run nginx		# 启动nginx容器
复制代码

启动成功后查看容器dockers pstomcat

容器

docker经常使用命令

  • 查看容器信息

    ##查看docker容器版本
    docker version
    ##查看docker容器信息
    docker info
    ##查看docker容器帮助
    docker --help
    复制代码
  • 列举一个镜像操做

    ##列出本地images
    docker images
    ##含中间映像层
    docker images -a
     ##下载Redis官方最新镜像,至关于:docker pull redis:latest
    docker pull redis
    ##下载仓库全部Redis镜像
    docker pull -a redis
     ##单个镜像删除,至关于:docker rmi redis:latest
    docker rmi redis
    ##强制删除(针对基于镜像有运行的容器进程)
    docker rmi -f redis
    ##多个镜像删除,不一样镜像间以空格间隔
    docker rmi -f redis tomcat nginx
    ##删除本地所有镜像
    docker rmi -f $(docker images -q)
    复制代码
  • 容器操做

    ##新建并启动容器,参数:-i 以交互模式运行容器;-t 为容器从新分配一个伪输入终端;--name 为容器指定一个名称
    docker run -i -t --name mycentos
    ##后台启动容器,参数:-d 已守护方式启动容器
    docker run -d mycentos
     ##启动一个或多个已经被中止的容器
    docker start redis
    ##重启容器
    docker restart redis
     ##进入容器
    docker exec -i -t  centos /bin/bash
     ##查看正在运行的容器
    docker ps
    ##查看正在运行的容器的ID
    docker ps -q
    ##查看正在运行+历史运行过的容器
    docker ps -a
    ##显示运行容器总文件大小
    docker ps -s
     ##中止一个运行中的容器
    docker stop redis
    ##杀掉一个运行中的容器
    docker kill redis
    ##删除一个已中止的容器
    docker rm redis
    ##删除一个运行中的容器
    docker rm -f redis
    ##删除多个容器
    docker rm -f $(docker ps -a -q)
    docker ps -a -q | xargs docker rm
    ## -l 移除容器间的网络链接,链接名为 db
    docker rm -l db 
    ## -v 删除容器,并删除容器挂载的数据卷
    docker rm -v redis
    复制代码