Py学习  »  docker

docker(一)---docker入门

lannisiter • 3 年前 • 239 次点击  
阅读 5

docker(一)---docker入门

docker是什么

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

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

docker安装

  • 如果机器安装过docker先卸载旧版

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

    在新主机上首次安装Docker Engine之前,需要设置Docker存储库。之后,您可以从存储库安装和更新Docker。

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

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

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

Hello Word

比如现在需要一个nginx,首先执行

docker pull nginx  # 默认最新版,如果需要指定版本,直接 nginx:version
复制代码

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

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

然后启动容器

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

启动成功后查看容器dockers ps

容器

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
    复制代码
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/71545
 
239 次点击