CentOS 7 Docker 安装
一、安装docker
1. yum install docker
安装完成后
$ docker -v
2.启动与停止 Docker 命令
$ systemctl start docker #启动 docker
$ systemctl stop docker #关闭 docker
$ systemctl restart docker #重启 docker
$ systemctl status docker # 查看docker 状态
$ systemctl enable docker # 将docker 设置为开机启动
通过 systemctl status docker 命令,看到下面状态是active说明docker启动成功
二、Docker 镜像操作
2.1 列出镜像
$ docker images
这些镜像都是存储在Docker宿主机的/var/lib/docker 目录下
2.3 搜索镜像
$ docker search 镜像名称
2.4 拉取镜像
2.4.1 从Docker Hub 拉取
$ docker pull 镜像名称
目前国内访问docker hub 速度有些尴尬,可以修改拉取镜像地址
2.4.2 ustc 的镜像
$ vim /etc/docker/daemon.json
添加 “registry-mirrors”:[“https://docker.mirrors.ustc.edu.cn”]
然后一定要重启 docker
现在是不是速度杠杠的。。。
2.5 删除镜像
$ docker rmi 镜像ID #删除指定镜像
$ docker rmi `docker images -q` #删除所有镜像
三、容器操作
3.1 查看容器
$ docker ps #查看正在运行的容器
$ docker ps -a #查看所有容器(启动过的历史容器)
$ docker ps -l 查看最后一次运行的容器
$ docker ps -f status=exited #查看停止的容器
3.2 创建与启动容器
3.2.1 创建容器常用的参数说明
1.创建容器命令:docker run
2. -i : 表示运行容器
3. -t : 表示容器启动后会进入命令行。加入这个参数后,容器创建就能登录进去。即分配一个伪终端。
4. --name : 为创建的容器命名。
5. -v : 表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个 -v 做多个目录或文件映射。这样在宿主机做修改后,容器内的文件也随之修改了。
6. -d:在run后 面加上 -d 参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加 -i -t 两个参数,创建后就会自动进入容器)
7. -p : 表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个 -p 做多个端口映射
3.2.2 交互式容器
$ docker run -it --name=myredis redis:latest /bin/bash #创建一个交互式容器取名为myredis
$ exit # 退出当前容器
(因为这种模式不太方便,了解就行了)
3.2.3 守护式容器
$ docker run -di --name=myredis -p 3306:3306 redis:latest # 创建守护式容器(在后台运行)
$ docker exec -it myredis /bin/bash # 登陆守护式容器(exit 退出命令,容器不会停止)
3.3停止与启动容器
$ docker stop myredis # 停止正在运行的容器
$ docker start myredis # 启动已经运行过了的容器
3.4 文件拷贝
docker cp 需要拷贝的文件或目录 容器名称:容器目录
docker cp 容器名称:容器目录 需要拷贝的文件或目录
3.5 目录挂载
我们可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主机的某个目录的文件从而去影响容器。
创建容器添加 -v 参数 后面为 宿主机目录:容器目录
$ docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=myredis redis
如果目录是多级目录,可能会出现权限不足的提示
Permission denied
这是应为CentOS7 中的安全模块selinux 把权限禁掉了,我们需要添加参数 -privileged=true
3.6 查看容器IP
$ docker inspect myredis
3.7 删除容器
$ docker rm myredis #只能删除停止的容器
$ docker rm `docker ps -a -q` # 删除所用容器