CentOS 7.x下搭建Docker全过程及Docker常用命令速查

发布时间:2017年11月30日 // 分类:运维 // 暂无评论

安装及配置国内源

安装Docker服务

yum install docker

启动Docker服务

service docker start

修改Docker默认源为国内镜像,首先创建文件/etc/docker/daemon.json,修改内容:

{
    "registry-mirrors": ["https://你的阿里云专属加速器地址.mirror.aliyuncs.com"]
}

使镜像设置生效

systemctl daemon-reload
service docker restart

常用命令

镜像操作

从镜像源下载镜像(NAME:镜像名称 TAG:镜像标签)

docker pull NAME[:TAG]
docker pull ubuntu # 下载ubuntu镜像(最新版)
docker pull ubuntu:14.04 # 下载版本(tag)为14.04的镜像

列出本地主机上已有镜像

docker images

为本地镜像添加标签


docker tag ubuntu:latest my_diy_ubuntu:latest

获取镜像的详细信息(返回一个json信息)

docker inspect NAME[:TAG]
docker inspect ubuntu
docker inspect -f {{".ContainerConfig.Hostname"}} ubuntu:latest # 筛选并提取json中特定位置内容

查看镜像历史

docker history NAME[:TAG]
docker history ubuntu
docker history ubuntu --no-trunc # 不截断过长的内容,完整输出

在远程仓库钟查找镜像(默认从docker官方仓库中查找(美国服务器))(TERM:关键字)

docker search TERM
docker search ubuntu

删除本地的镜像(当镜像存在对应容器时无法删除)

docker rmi IMAGE [IMAGE...]
docker rmi my_diy_ubuntu:latest    # 仅删除镜像的标签(当指定名称为标签时)
docker rmi ubuntu:latest    # 彻底删除镜像

存出镜像(导出镜像为本地文件)

docker save -o ubuntu_file.tar ubuntu:14.04

载入镜像(将文件导入本地镜像列表)

docker load --input ubuntu_file.tar

创建新镜像(基于现有镜像的容器)

提交新镜像语法为:

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

其中

  • -a 作者信息
  • -c 提交时执行Dockerfile指令
  • -m 提交信息
  • -p 提交时暂停容器运行

例如:

$ docker run -it ubuntu /bin/bash    # 基于ubuntu镜像创建一个容器并运行bash
root@a925cb40b3f0:/# touch test    # 创建一个名为test的文件
root@a925cb40b3f0:/# exit    # 退出容器
$ docker commit -m "add a file" -a "MyName" a925cb40b3f0 test:0.1    # 提交一个新镜像

创建新镜像(基于模板导入)

语法为:

docker import [OPTIONS] file|URL|-[REPOSITORY[:TAG]]

容器操作

查看当前运行的容器

docker ps

查看本机所有的容器

docker ps -a

创建容器(该命令具体非常复杂,需参考其他材料)

docker create -it ubuntu    # 创建容器
    # 或 
    # docker run 等价于 docker create后执行 docker run
docker run -it ubuntu /bin/bash    # 创建并使用容器中的bash
docker run ubuntu /bin/echo 'Hello World'    # 创建并调用echo

启动容器

docker start 00df5d374123 # 00df5d374123为CONTAINER ID

终止容器

docker stop [-t[=10]] [CONTAINER...]
docker stop -t=10 00df5d374123

删除容器

docker rm CONTAINER_ID
docker rm f4145d1d84e1
docker rm -f f4145d1d84e1 # 强制终止并删除
docker rm -l f4145d1d84e1 # 删除容器的连接但保持容器
docker rm -v f4145d1d84e1 # 删除容器挂载的数据卷

在进入后台的容器中执行操作使用docker execdocker attach命令

docker exec -it 243c32535da7 /bin/bash

导出容器为快照

docker export -0 test_continer.tar f4145d1d84e1

导入容器作为镜像(该命令与docker load类似,但容器快照不含历史记录和元数据,仅包含当时的快照状态。但容器快照导入时可以重新指定标签等信息)

docker import test_continer.tar - test/ubuntu:v1.0

本文大部分内容整理自:《Docker技术入门与实战 第2版》

本文固定链接
https://www.ywlib.com/archives/125.html

标签
centos, docker

添加新评论 »