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组件,就删除这些即可
[root@t1 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.enable=1' to boot command line)
不修正也能用docker,但为了安心,如下修正,需要重启生效:
grubby --args="user_namespace.enable=1" --update-kernel="$(grubby --default-kernel)"
reboot
Docker 软件包已经包括在默认的 CentOS-Extras 软件源里。
yum install docker
[root@t1 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/nginx
image_name 为镜像的名称,而如果我们想从 Docker Hub 上去下载某个镜像,我们可以使用以下命令:
docker pull centos:latest
docker pull docker.io/nginx
centos:lastest 是镜像的名称, Docker发现本地没有我们需要的镜像,会自动去 Docker Hub 上去下载镜像,下载完成后,该镜像被默认保存到 /var/lib/docker 目录下,如果没有指定冒号后面的版本,则默认会下载最新的latest版本。
接着我们如果想查看下主机下存在多少镜像,我们可以用如下命令:
docker images
那如果我们想运行这个容器中的镜像的话,并且调用镜像里面的 bash ,我们可以使用如下命令:81是宿主机port,80是容器里的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