docker第一篇

部署一个R应用,用到了docker。

在mac上安装Docker Desktop,安装后可在终端上用docker version查看docker版本。

搜索镜像:

docker search nginx

拉取镜像:

docker pull nginx

查看本地镜像:

docker images

image id标记一个镜像。repository:tag也标记一个镜像,repository相同,但是tag可能有多个,其image id是不一样的。

删除本地镜像:

docker rmi nginx:latest

或者docker rmi image_id

创建一个引用本地某一个镜像的新镜像:

docker tag image_id 新repository:新tag

或者docker tag repository:tag new_repository:new_tag

如:docker tag openresty/openresty:latest openresty:latest

重命名镜像:

没有直接的命令,操作思想是先用docker tag命令复制原镜像,docker tag可以对新镜像重命名,然后在删掉原来的镜像。

docker tag openresty/openresty:latest openresty:latest

docker rmi openresty/openresty

保存镜像:

docker save -o XXX.tar image_id

如docker save -o openresty.tar 3c5b5f6743d4

什么时候保存镜像呢?在A机器上build了一个镜像,是在nginx镜像上做的,自己装了一些常用的基础组件,如vim、procps、lsof、curl、net-tools、iputils-ping、telnet,这样在新镜像的容器中就可以用vi、ps、lsof、curl、ping、telnet等命令了。很多pull下来的镜像是不预装这些基础组件的,导致这些常用命令用不了,需要自己安装。想要在B机器上用这个我们预装好的镜像启动一个容器,则需要在A机器上保存此镜像,下载,然后上传到B机器上,在B机器上安装docker,然后载入此镜像,再启动容器即可。

载入镜像:

docker load -i XXX.tar

之后,可以用docker images命令查看是否载入成功,载入成功的话,就可以正常使用了。

启动容器:

docker run -p 10000:80 nginx

宿主机占用10000端口,容器占用80端口。tag省略的话,默认是latest。等同于docker run -p 10000:80 nginx:latest。注意,此时是前台启动,执行ctrl+c后,容器就挂掉了。

docker run -d -p 11000:80 nginx

-d表示后台启动。

查看当前存活的容器:

docker ps

一个container id标记一个容器。

查看所有的容器,包括挂掉的:

docker ps -a

进入容器:

先docker ps 查看容器id,假如是775c7c9ee1e1,则继续执行 docker exec -it 775c7c9ee1e1 /bin/bash

docker命令设计的很有规范,不记得后面参数的话,可以用--help查看,如docker images --help。

猜你喜欢

转载自www.cnblogs.com/koushr/p/12919518.html