Docker 安装、配置与使用

本文将说明 Docker 的安装、配置和使用方法。

一、安装、运行

1. 安装 Docker

1
yum install -y docker

2. 查看 Docker 是否安装成功

1
yum list installed |grep docker

3. 启动 Docker 服务

1
systemctl start docker.service

4. 查看 Docker 是否启动成功

1
systemctl status docker

5. 设置 Docker 开机自启

1
systemctl enable docker.service

二、配置 Docker 仓库

Docker 的默认仓库服务器位于国外,拉取镜像时往往会遇到困难,因此可以配置国内镜像,从而加速镜像的拉取。

1. 生成阿里云加速地址

  • 打开阿里云
  • 搜索 容器镜像服务
  • 容器镜像服务 - 镜像工具 - 镜像加速器 处,获取加速地址

2. 修改配置

1
vim /etc/docker/daemon.json

修改为:

1
2
3
{
"registry-mirrors": ["加速地址"]
}

3. 重启 Docker 服务

1
systemctl restart docker.service

三、命令 - 镜像

1. 获取镜像

1
docker pull 镜像名:版本

2. 所有镜像

1
docker images

列出所有镜像

3. 删除镜像

1
docker rmi 镜像id

四、命令 - 容器

1. 创建容器

1
docker run 镜像名:版本

以指定的镜像创建一个容器并运行

1
docker run 镜像名:版本 命令

以指定的镜像创建一个容器并运行,并在容器中执行命令

1
2
docker run ubuntu:15.10 /bin/echo "Hello world"
// Hello world
1
2
3
docker run -i -t 镜像名:版本
// 或
docker run -it 镜像名:版本

以指定的镜像创建一个容器并运行,立即进入容器之中,可以直接在终端中与容器进行交互

需要注意的是:

直接退出终端将会导致容器关闭,如果希望退出终端且保持容器的运行,应该使用 CTRL+P+Q 命令

1
docker run -d 镜像名:版本

以指定的镜像创建一个容器,容器将会在后台运行

1
docker create 镜像名:版本

以指定的镜像创建一个容器,并不启动它

可选参数:

  • -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
  • -d: 后台运行容器,并返回容器ID;
  • -i: 以交互模式运行容器,通常与 -t 同时使用;
  • -P: 随机端口映射,容器内部端口随机映射到主机的端口
  • -p: 指定端口映射,格式为:主机端口:容器端口
  • -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
  • –name=”nginx-lb”: 为容器指定一个名称;
  • –dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
  • –dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
  • -h “mars”: 指定容器的hostname;
  • -e username=”ritchie”: 设置环境变量;
  • –env-file=[]: 从指定文件读入环境变量;
  • –cpuset=”0-2” or –cpuset=”0,1,2”: 绑定容器到指定CPU运行;
  • -m:设置容器使用内存最大值;
  • –net=”bridge”: 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
  • –link=[]: 添加链接到另一个容器;
  • –expose=[]: 开放一个端口或一组端口;
  • –volume , -v: 绑定一个卷

2. 启动容器

1
docker start器id/容器名

启动已被停止的容器

3. 停止容器

1
docker stop 容器id/容器名

停止运行中的容器

1
docker kill 容器id/容器名

强行停止运行中的容器

4. 重启容器

1
docker restart 容器id/容器名

重启容器

5. 暂停和恢复

1
docker pause 容器id/容器名

暂停容器

1
docker unpause 容器id/容器名

恢复容器

6. 进入容器

1
docker attach 容器id

进入容器

1
docker exec 容器id

进入容器,并且退出终端时不会导致容器退出

7. 所有容器

1
docker ps

列出所有正在运行的容器

1
docker ps -a

列出所有容器

8. 删除容器

1
docker rm 容器id

删除指定容器

1
docker container prune

删除所有处于终止状态的容器

参考