docker 常用指令

 

装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

  

设置Docker容器日志文件大小限制

1.新建/etc/docker/daemon.json,若有就不用新建了。添加log-dirver和log-opts参数,样例如下:

# vim /etc/docker/daemon.json

{
  "log-driver":"json-file",
  "log-opts": {"max-size":"500m", "max-file":"3"}
}

 

max-size=500m,意味着一个容器日志大小上限是500M, 
max-file=3,意味着一个容器有三个日志,分别是id+.json、id+1.json、id+2.json。

 

2.然后重启docker的守护线程

命令如下:

 

systemctl daemon-reload
systemctl restart docker

 

 

 

【需要注意的是:设置的日志大小规则,只对新建的容器有效】

 

posted @ 2019-01-03 17:25  文艺流浪汉  阅读(433)  评论(0编辑  收藏  举报