Docker 基本使用总结(未完待续)
2018-07-30 本文已影响0人
dszkng
理解几个概念
镜像(Image)
镜像
就是我们平常理解的镜像文件
,主要是一些官方的linux发行版系统(CentOS/Ubuntu等)、别人打包上传的文件。下面的IAMGE ID
就是一个镜像的唯一标识
,代表着一个镜像文件。
REPOSITORY TAG IMAGE ID CREATED SIZE
centos <none> e934aafc2206 7 weeks ago 199MB
仓库(Repository)
仓库
就是镜像
的版本管理仓库
,下面的第一列就是仓库
,可以看出一个镜像如果发展成多个版本
了,可以用引入了仓库(仓库标识
+Tag
)来管理每一个版本。和Git
管理代码仓库有点类似。
REPOSITORY TAG IMAGE ID CREATED SIZE
gene_centos v1 d2f69ca9554d 2 hours ago 3.19GB
gene_centos v2 d2f69ca9554d 2 hours ago 3.38GB
new_gene_centos v1 d2f69ca9554d 2 hours ago 3.14GB
容器(Container)
运行一个仓库中的镜像后就是一个容器。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1f736f9ee456 d2f69ca9554d "/usr/sbin/init" 9 seconds ago Up 19 seconds 0.0.0.0:80->80/tcp, 8081/tcp mystifying_perlman
基本管理
Docker服务管理
启动docker
$ systemctl status docker
重启docker
$ systemctl daemon-reload
$ systemctl restart docker
修改启动参数
$ vim /usr/lib/systemd/system/docker.servicec # 在ExecStart后增加选项参数
验证
$ docker info
镜像管理
查看所有镜像
$ ps images
拉取/推送镜像
- 拉取(下载)远程镜像
Docker Hub:https://hub.docker.com/
$ docker pull [OPTIONS] NAME[:TAG|@DIGEST] [flags] # 命令格式
$ docker pull centos:7.2.1511 # 从Docker Hub下载REPOSITORY为centos的所有镜像。
$ docker pull -a dszkng/centos7 # 下载REPOSITORY为"dszkng/centos7"的所有镜像
- 推送(上传)镜像到远程
镜像的管理方式非常像Git
,可以使用docker push
命令上传自己本地镜像到仓库,默认上传到DockerHub
官方仓库(需要登陆)
。
$ docker push image_name[:tag_name] # 命令格式
$ docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG] # 命令格式
$ docker tag centos dszkng/centos7 # 在上传之前一般会先为自己的镜像添加带自己名字(作者信息)的标签
$ docker push dszkng/centos7 # 上传镜像
导入/导出到镜像
- 导入容器(基于本地模板)
$ docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]] [flags] # 命令格式
$ docker import /tmp/images/centos.tar dszkng/centos7:v1
- 导出(持久化)容器
$ docker export [OPTIONS] CONTAINER [flags] # 命令格式
$ docker export 1f736f9ee456 > /tmp/images/centos.tar
存出/载入镜像
- 存出镜像(保存镜像到本地文件)
$ docker save -o /tmp/images/centos.tar d2f69ca9554d # 指定image_id
$ docker save -o /tmp/images/centos.tar centos # 指定镜像名称
- 载入镜像(加载本地镜像文件)
$ docker load --input /tmp/images/centos.tar
$ docker load < /tmp/images/centos.tar # 简化写法
创建/删除镜像
- 创建镜像
三种方法:基于已有镜像的容器创建
、基于本地模板导入
、基于Dockerfile创建
。
- 基于已有镜像的容器创建
$ docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] # 命令格式
主要参数选项包括:
-a:–author="" 作者信息
-m:–message="" 提交信息
-p:–pause=true 提交是暂停容器运行
$ docker commit –m "test" –a "dszkng" d8990fec2141 my-centos7-image
-
基于本地模板导入
上面有介绍。 -
基于
Dockerfile
创建
暂时不介绍。
- 删除镜像
$ docker rmi repository:tag # 第一步:先删除镜像的使用仓库
$ docker rmi image_id # 第二步:删除镜像
容器管理
- 查看正在运行的容器
➜ / docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1f736f9ee456 d2f69ca9554d "/usr/sbin/init" 9 seconds ago Up 19 seconds 0.0.0.0:80->80/tcp, 8081/tcp mystifying_perlman
- 查看所有运行过的容器
➜ / docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1f736f9ee456 d2f69ca9554d "/usr/sbin/init" 4 minutes ago Up 5 minutes 0.0.0.0:80->80/tcp, 8081/tcp mystifying_perlman
5d0630b78be7 0fccf9c0af91 "/usr/sbin/init" 44 hours ago Exited (137) 2 hours ago thirsty_snyder
cfc693c4aed8 ef1a371e7cf4 "/usr/sbin/init" 46 hours ago Exited (137) 44 hours ago heuristic_kirch
- 启动容器
docker run
- 进入一个正在运行的容器
docker exec
- 停止容器
docker stop
- 删除容器
docker rm container_id
附录: