上篇文章https://blog.youkuaiyun.com/qq_35008624/article/details/98586923总结了一下docker的认识和安装,这篇文章继续总结下镜像和容器的操作:
一、镜像的操作
(1)列出docker下的已安装所有镜像
docker images
(2)显示镜像ID
docker images -q
(3)搜索镜像的信息
docker search [OPTIONS] 镜像名称
OPTIONS :
-s 列出关注数大于指定值的镜像
--no-trunc 显示完整的镜像描述DESCRIPTION
docker search -s 100 centos 1
docker search --no-trunc centos 1
NAME:仓库名称
DESCRIPTION:镜像描述
STARS:关注度,反应一个镜像的受欢迎程度
OFFICIAL:是否官方
AUTOMATED:自动构建,表示该镜像由Docker Hub自动构建流程创建的
(4)拉取镜像
docker pull 镜像名:标签名
docker pull mysql:5.6
二、容器的操作
(1)查看容器
查看正在运行容器:
docker ps
查看所有的容器(启动与未启动的容器):
docker ps -a
查看最后一次运行的容器:
docker ps –l
查看停止的容器
docker ps -f status=exited
(2)创建容器
docker run [OPTIONS] 镜像名:标签名
[OPTIONS] 常用的参数说明:
-i 表示交互式运行容器(就是创建容器后,马上会启动容器,并进入容器 ),通常与 -t 同时使用 。
-t 启动后会进入其容器去。即分配一个伪终端。
--name 为创建的容器指定一个名称
-d 创建一个守护式容器在后台运行,并返回容器ID
-v 表示目录映射, 格式为: -p 宿主机目录:容器目录,映射后我们就可以直接通过宿主机同步文件到容器中了
-p 表示端口映射,格式为: -p 宿主机端口:容器端口
(3)进入容器
创建一个交互式容器并取名为lpf,(/bin/bash 是linux中的命令解析器,会进入到容器里面命令行)
docker run -it --name=lpf-tomcat tomcat:8 /bin/bash
【注意】所有的docker命令是在宿主机执行的,同一个镜像下可以创建多个容器,比如创建多个tomcat容器,但是端口映射为不同的端口
(4)退出容器
exit
(5)运行和停止容器
启动已运行过的容器
docker start 容器名称|容器id
启动所有运行过的容器(注意:反单引号` `), docker ps -a -q 是查询所有运行过的容器ID
docker start `docker ps -a -q`
停止正在运行的容器(正常停止)
强制停止正在运行的容器
docker kill 容器名称|容器id
停止所有在运行的容器
docker stop `docker ps -a -q`
(6)创建守护式容器
什么是守护式容器呢?就是我们想让这个容器长期运行,比如启动正跑着项目的tomcat服务。
docker run -id --name=mycentos2 centos:7
运行(-i)
创建(-d)
(7)登录已经启动的容器
docker exec -it 容器名称|容器id /bin/bash
eg:
docker exec -it tomcat-8080 /bin/bash
(8)同步文件到容器
docker cp 要拷贝的宿主机文件或目录 容器名称:容器文件或目录
eg:
把tomcats 下的文件拷贝到tomcat-docker-8088容器中的/webapps下
docker cp /usr/local/tomcats tomcat-docker-8088:/usr/local/tomcat/webapps
下面是创建并映射端口和文件路径
docker run -id --name=tomcat-8888 -p 8888:8080 -v
/usr/local/project:/usr/local/tomcat/webapps --privileged=true tomcat:8
说明:
-p 表示地址映射, 宿主机端口号:容器运行端口号
-v 表示地址映射, 宿主机目录:容器映射目录
--privileged=true 如果映射的是多级目录,防止有可能会出现没有权限的问题,所以加上此参数
(9)宿主机与容器的目录挂载(路径映射)
docker run -id -v /宿主机绝对路径目录:/容器内目录 --name=容器名 镜像名
目录挂载只读(Read-only)权限
docker run -id -v /宿主机绝对路径目录:/容器内目录:ro --name=容器名 镜像名
docker run -id -v /tomcats:/webapps:ro --name=tomcat-80 tomcat:8
(10)容器其他信息查看
查看容器IP地址:
docker inspect --format='{{.NetworkSettings.IPAddress}}' tomcat-8080
查看容器运行内部细节(包括ip等等信息):
docker inspect tomcat-8080
(11)删除容器
删除指定的容器:docker rm 容器名称 | 容器ID
注意下删除只能删除停止的容器,在删除前先停止容器
以上就是docker容器和镜像的基本操作,下篇文章总结常用容器的安装和项目的部署,比如tomcat,mysql,redis等。