docker使用总结

1. docker组成

Docker Client 客户端

Docker Daemon 守护进程

Docker Image 镜像

Docker Container 容器

Docker Registry 仓库 //几种存放镜像的地

最大的公开仓库为docker hub (https://hub.docker.com/)

国内公开仓库包括阿里云和网易云等

2.基本操作指令

docker version

docker info

docker –help

docker search *** //搜索image

docker images //查看本机的image

docker pull *** //拉取image

docker build

docker run

docker ps

docker ps -a

docker search uwsgi -s 30 //搜索星数超过30的image

docker rmi image_name // 删除某一镜像

docker rm container_id //删除某一container

docker rm -f $(docker ps -a -q) //一次删除多个容器

docker logs -f -t –tail 容器ID //查看日志,-t 是加入的时间戳,-f是随最新的日志打印,–tail 数字显示最后多少条

docker top 容器ID //查看容器运行的进程

docker inspect 容器ID //查看容器内部细节

docker cp 容器DI:/path / 宿主机path //将容器内的文件拷贝到宿主机上

attach 直接进入容器启动命令终端,不会启动新的进程

exec在是容器中打开新的终端,并且可以启动新的进程

3. docker run [options] image [command] [arg…]

options说明

–name=”容器新名字”:为容器指定一个名字

-i 一交互模式运行容器,通常与-t同时使用

-t 为容器重新分配一个伪输入终端,通常与-i同时使用

-d 后台运行容器,并反会容器ID,也即启动守护式容器

-P 随机端口映射

-p 指定端口映射,有以下四种形式

ip:hostPort:containerPort

ip::containerPort

hostPort:containerPort

containerPort

4. docker image/commit

UnionFS(联合文件系统) 对文件系统的修改作为一次提交来一层一层的叠加;

bootfs(boot file system) 主要包含bootloader 和kernel

rootfs(root file system)

docker commit 提交容器副本使之成为一个新的镜像

-m 提交的描述信息

-a 作者

docker commit -a=”lxq” -m=”test with commit” containerID test(前缀)/原Image_name:V1(自定义版本号)

5.容器数据卷

法1:直接命令添加

docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名

法2:DockerFile添加

6.映射硬件设备

举例:


# docker run --rm -it --device /dev/ttyUSB0:/dev/ttyS0 ubuntu:14.04 /bin/sh
 
注意:/dev/ttyUSB0 //Ubuntu下串口设备
     /dev/ttyS0   //Docker下串口设备

7.导入/导出本地镜像

docker import/export

有时候我们自己在本地或者其它小伙伴电脑上拷贝了一份镜像,有了这个镜像之后,我们可以把本地的镜像导入,使用docker import 命令。
例如这里下载了一个 alibaba-rocketmq-3.2.6.tar.gz 镜像文件,使用下列命令导入:

cat alibaba-rocketmq-3.2.6.tar.gz | docker import - rocketmq:3.2.6(镜像名自己定义)


docker export jovial_elion > /home/myubuntu-export-1204.tar
docker import /home/myubuntu-export-1204.tar

//指定镜像的REPOSITORY、TAG
docker import - myubuntu:tag < /home/myubuntu-export-1204.tar  

8.保存镜像

docker save

docker save -o rocketmq.tar rocketmq 

##-o:指定保存的镜像的名字;rocketmq.tar
保存到本地的镜像名称;rocketmq
镜像名字,通过"docker images"查看

//这里有个基础镜像:ubuntu:12.04,现在要将这个镜像保存为一个文件myubuntu-save-1204.tar
docker save cd6d8154f1e1 > /home/myubuntu-save-1204.tar

9. 载入镜像

docker load

我们有了本地的镜像文件,在需要的时候可以使用docker load将本地保存的镜像再次导入docker中。

docker load --input rocketmq.tar 或 docker load < rocketmq.tar

docker load < /home/myubuntu-save-1204.tar

导出 export 与 保存 save 的区别

  • export导出的镜像文件大小 小于 save保存的镜像

  • export 导出(import导入)是根据容器拿到的镜像,再导入时会丢失镜像所有的历史,所以无法进行回滚操作(docker tag <LAYER ID> <IMAGE NAME>);而save保存(load加载)的镜像,没有丢失镜像的历史,可以回滚到之前的层(layer)。(查看方式:docker images –tree)

10.删除镜像

有些镜像过时了,我们需要删除。使用如下的命令:docker rmi -f image_id 
##-f:表示强制删除镜像;image_id:镜像id

11.Commit

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。
将容器a404c6c174a2 保存为新的镜像,并添加提交人信息和说明信息。

docker commit -a "runoob.com" -m "my apache" a404c6c174a2  mymysql:v1 

12.添加docker 用户组

sudo groupadd docker //创建docker用户组
sudo usermod -aG docker ${USER} //当前用户中加入docker用户组
sudo systemctl restart docker //重启docker 服务
newgrp - docker //生效配置
学习更多知识,加QQ群:1098090823
威武网 » docker使用总结

提供最优质的资源集合

立即查看 了解详情