Docker
1. Docker安装
官方安装文档:https://docs.docker.com/engine/install/centos/
- 卸载老版本
sudo yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine
- 安装
yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io
docker -v
- 阿里云镜像加速器配置
阿里云–容器镜像服务–镜像工具–镜像加速器–按照操作文档操作
2. Docker常用命令
- systemctl start docker
- docker run hello-world
- docker --help
- docker images:列出本地主机上的镜像
- -a:列出本地所有的镜像(含中间映像层)
- -qa:只显示镜像ID
- –digests:显示镜像的摘要信息
- –no-trunc:显示完整的镜像信息
- docker search XXX:去docker hub上搜索名为XXX的镜像
- –no-trunc:显示完整的镜像描述
- -s:列出收藏数不小于指定值的镜像
- –automated:只列出automated build类型的镜像
- docker pull XXX:下载XXX镜像
- docker rmi XXX:删除XXX镜像
- 删除单个:docker rmi -f 镜像ID
- 删除多个:docker rmi -f 镜像名1:TAG 镜像名2:TAG
- 删除全部:docker rmi -f $(docker images -qa)
- docker run [option] XXX:创建容器例如:docker run -it centos7
- –name=“XXX”:给容器改名为XXX
- -d:后台运行容器,并返回容器ID,也就是启动守护式容器
- -i:以交互模式运行容器,通常与-t同时使用
- -t:为容器重新分配一个伪输入终端,通常与-i同时使用
- -P:随机端口映射
- -p:指定端口映射,有以下四种格式:
- ip:hostPort:containerPort
- ip::containerPort
- hostPort:containerPort
- containerPort
- docker ps [option]:查看docker正在运行的容器
- -a:列出所有
- -l:显示最近创建的容器
- -n:显示最近n个创建的容器
- -q:静默模式,只显示容器编号
- –no-trunc:不截断输出
- exit:容器停止退出
- ctrl+P+Q:容器不停止退出
- docker start:启动容器
- docker restart:重新启动容器
- docker stop:停止容器
- docker kill:强制停止容器
- docker rm:删除容器
- docker ps -a -q | xargs docker rm:一次性删除所有容器
- docker logs -f -t --tail 容器ID:查看容器日志
- docker top centos1:查看容器centos1内运行的进程
- docker inspect 容器ID:查看容器内部细节
- docker attach:直接进入容器启动命令的终端,不会启动新的进程
- docker exec -it centos1 /bin/bash:是在容器中打开新的终端,并且可以启动新的进程
- docker cp 容器ID:容器内路径 目的主机路径
- docker commit:提交容器副本使之称为一个新的镜像
- docker commit -m=“提交的描述信息” -a=“作者” 容器ID 要创建的目标镜像名:[标签名]
- docker export 1e560fca3906 > ubuntu.tar:导出容器
- cat docker/ubuntu.tar | docker import - test/ubuntu:v1:导入
创建redis容器
docker run -p 6379:6379 --name redis \
-v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf
docker 服务器开机自启动:
1.systemctl is-enabled docker.service 检查服务是否开机启动
2.systemctl enable docker.service 将服务配置成开机启动
3.systemctl start docker.service 启动服务
systemctl 相关其他命令:
systemctl disable docker.service 禁止开机启动
systemctl stop docker.service 停止
systemctl restart docker.service 重启
//------------------------------------------------------
容器开机启动:
创建容器时候指定restart参数:
docker run -it -p 6379:6379 --restart=always --name redis -d redis
对已经创建的容器用docker update 更新:
docker update --restart=always xxx
--restart具体参数值详细信息 :
no - 容器退出时,不重启容器
on-failure - 只有在非0状态退出时才从新启动容器
always - 无论退出状态是如何,都重启容器
3 Docker镜像
- 一个镜像可以生成多个容器实例
- 容器是用镜像创建的运行实例
- 可以把容器看作是一个简易版的linux环境和运行在其中的应用程序
4. Docker容器数据卷
特点:
- 数据卷可在容器之间共享或重用数据
- 卷中的更改可以直接生效
- 数据卷中的更改不会包含在镜像的更新中
- 数据卷的生命周期一直持续到没有容器使用它为止
添加容器数据卷
- 直接添加:docker run -v /宿主机地址: /容器地址
- 用DockerFile添加 VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"]
5. DockerFile
- Dockerfile 是一个用来构建镜像的文本文件,用构建tomcat的DockerFile文件为例
- 在空目录下创建一个名为DockerFile的文件
mkdir myDockerFile
vim DockerFile
- 添加如下内容
# volume test
FROM tomcat
VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"]
CMD echo "finished,-------successl"
CMD /bin/bash
- build生成镜像
docker build -t lvhang/tomcat .