
docker大图Docker的安装和使用-centos7最新的 Docker 支持情况官方文档在这里https://docs.docker.com/install/Docker 对于内核支持的功能即内核的配置选项也有一定的要求(比如必须开启 Cgroup 和 Namespace 相关选项以及其他的网络和存储驱动等)centos7内核版本不低于 3.10, Docker 源码中提供了一个检测脚本来检测和指导内核的配置脚本链接在这里https://raw.githubusercontent.com/docker/docker/master/contrib/check-config.sh首先我们需要卸载掉旧版本的 Docker$ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine实际情况可以rpm看系统安装了哪些docker组件就删除这些即可[roott1 docker]# rpm -qa|grep docker docker-client-1.13.1-102.git7f2769b.el7.centos.x86_64 docker-common-1.13.1-102.git7f2769b.el7.centos.x86_64 docker-1.13.1-102.git7f2769b.el7.centos.x86_64 yum remove docker -y yum remove -y docker-client yum remove -y docker-common我们执行以下安装命令去安装依赖包$ yum install -y yum-utils \ yum install -y device-mapper-persistent-data \ yum install -y lvm2执行check-config.sh(见上面的链接)有如下miss(RHEL7/CentOS7: User namespaces disabled; add user_namespace.enable1 to boot command line)不修正也能用docker但为了安心如下修正需要重启生效grubby --argsuser_namespace.enable1 --update-kernel$(grubby --default-kernel) rebootDocker 软件包已经包括在默认的 CentOS-Extras 软件源里。yum install docker [roott1 docker]# rpm -qa|grep docker docker-client-1.13.1-102.git7f2769b.el7.centos.x86_64 docker-common-1.13.1-102.git7f2769b.el7.centos.x86_64 docker-1.13.1-102.git7f2769b.el7.centos.x86_64启动docker查看docker状态查看docker版本systemctl start docker systemctl status docker docker version从docker官方镜像仓库下载镜像library/hello-world 是 image 文件在仓库里面的位置其中 library 是 image 文件所在的组 hello-world 是 image 文件的名字。docker pull library/hello-world查看镜像docker images运行镜像docker run hello-world常用的命令大图查找镜像docker search nginx我们需要拉取一个 docker 镜像我们可以用如下命令docker pull docker.io/nginximage_name 为镜像的名称而如果我们想从 Docker Hub 上去下载某个镜像我们可以使用以下命令docker pull centos:latest docker pull docker.io/nginxcentos:lastest 是镜像的名称 Docker发现本地没有我们需要的镜像会自动去 Docker Hub 上去下载镜像下载完成后该镜像被默认保存到 /var/lib/docker 目录下如果没有指定冒号后面的版本则默认会下载最新的latest版本。接着我们如果想查看下主机下存在多少镜像我们可以用如下命令docker images那如果我们想运行这个容器中的镜像的话并且调用镜像里面的 bash 我们可以使用如下命令81是宿主机port80是容器里的nginx的port–name取名字-d后台运行容器nginx:latest镜像的名字。docker run -t -i container_name/container_id /bin/bash docker run -p 81:80 --name nginx-1 -d nginx:latest我们要想知道当前有哪些容器在运行我们可以用如下命令docker ps -a-a 是查看当前所有的容器包括未运行的我们该如何去对一个容器进行启动重启和停止呢我们可以用如下命令docker start container_name/container_id docker restart container_name/container_id docker stop container_name/container_id这个时候我们如果想进入到这个容器中我们可以使用 attach 命令docker attach container_name/container_id那如果这个时候我们想删除指定镜像的话由于 image 被某个 container 引用拿来运行如果不将这个引用的 container 销毁删除那 image 肯定是不能被删除。我们首先得先去停止这个容器docker ps docker stop container_name/container_id然后我们用如下命令去删除这个容器docker rm container_name/container_id然后这个时候我们再去删除这个镜像docker rmi image_name