装docker
https://www.runoob.com/docker/centos-docker-install.html
开机开启docker服务
1、使用ststemctl命令
systemctl enable docker
2.将Docker的docker.service服务移动到系统服务中
# cp /usr/lib/systemd/system/docker.service /etc/systemd/system/ # systemctl daemon-reload # systemctl restart docker
Docker 加速
由于国内下载 docker image 速度较慢,可以使用镜像进行加速。
编辑或新增 /etc/docker/daemon.json 添加如下内容:
{ "registry-mirrors": [ "https://wixr7yss.mirror.aliyuncs.com", "https://registry.docker-cn.com", "https://dockerhub.azk8s.cn", "https://reg-mirror.qiniu.com" ] }
容器开机启动
网上有些文章说,要让docker 的容器自动在开机启动,是写脚本,比如在 rc.local 中写。
其实完全没必要这么麻烦,docker 有相关指令,docker run 指令中加入 --restart=always 就行。
sudo docker run -dit --restart unless-stopped .....
如果创建时未指定 --restart=always ,可通过update 命令设置
docker update --restart always names 或 contain_id
查看 所有容器
docker ps -a
移除所有停止容器
sudo docker container prune
停止某个容器
sudo docker stop container_id
移除某个容器
sudo docker rm container_id
重命名镜像
docker tag IMAGEID(镜像id) REPOSITORY:TAG(仓库:标签)
从Docker文件构建Docker映像
docker build -t image-name docker-file-location
-t:它用于指定使用提供的名称来标记Docker映像。
运行Docker映像
docker run -d --name=xxxx image-name
-d:用于创建守护程序进程(后台运行)
查看可用的Docker映像
docker images
查看最近的运行容器
docker ps -l
-l:它用于显示最新的可用容器。
查看所有正在运行的容器
docker ps -a
-a:它用于显示所有可用的容器。
停止运行容器
docker stop container_id(names)
运行容器
docker start container_id(names)
container_id:由Docker分配给容器的Id。
删除一个映像
docker rmi image-name -f
docker rmi name:tag
删除容器
docker rm 容器ID或容器名
#删除所有未运行的容器(已经运行的删除不了,未运行的就一起被删除了)
sudo docker rm $(sudo docker ps -a -q)
#根据容器的状态,删除Exited状态的容器
sudo docker rm $(sudo docker ps -qf status=exited)
# 删除孤立的容器。
sudo docker container prune
删除所有映像
docker rmi $(docker images -q)
删除指定关键词多个镜像
docker rmi --force `docker images | grep XXX | awk '{print $3}'`
删除所有tag标签是none的镜像
docker images|grep none|awk '{print $3 }'|xargs docker rmi
强制删除所有映像
docker rmi -r $(docker images -q)
-r:用于强制删除映像。
停用全部运行中的容器:
docker stop $(docker ps -q)
删除所有容器
docker rm $(docker ps -a -q)
删除停止的容器
docker container prune
进入Docker容器
docker exec(attach) -it container-id docker exec -it 容器名字 /bin/bash
docker exec -it 容器名字(container-id) /bin/sh
退出方式应该用一个组合键 Ctrl+p Ctrl+q
查看容器时间 其他命令等
docker exec container-id date
启动失败查看docker 日志
$docker logs [容器名/容器ID]
查看已存在的容器所挂载的目录
$ docker inspect container-id | grep Mounts -A 20
文件目录挂载
-v [host-dir]:[container-dir]:[rw|wo]
-v后面的映射关系是"宿主机文件/目录:容器里对应的文件/目录",其中,宿主机上的文件/目录是要提前存在的,容器里对应的文件/目录会自动创建。
数据卷权限:
挂载的数据默认为可读写权限。
内部文件查看
docker exec -it [CONTAINER ID] ls -l(bash)
ls -l可换成其他操作
拷贝文件 从容器到本地:
docker cp <containerId>:/logs /home/gps/
拷贝文件 从本地到容器:
docker cp filename <containerId>:/file/path/within/container