Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docker command #6

Open
lqshow opened this issue Jan 7, 2018 · 0 comments
Open

Docker command #6

lqshow opened this issue Jan 7, 2018 · 0 comments

Comments

@lqshow
Copy link
Owner

lqshow commented Jan 7, 2018

基本命令

查看客户端所有命令

docker

查看docker版本

docker version

显示docker系统信息

docker info

登录registry server

docker login

查看 Docker 磁盘使用情况

# 查看占用分布
docker system df

# 进一步查看空间占用细节,以确定是哪个镜像、容器或本地卷占用过高空间
docker system df -v

清理 Docker 空间

# 清除所有未被使用的镜像和悬空镜像
docker system prune -a

# 强制删除
docker system prune -f

# 删除悬空的镜像
docker image prune

# 删除无用的容器
docker container prune

容器部分

创建容器

检查本地是否存在centos镜像,不存在,链接官方,自动下载带本地宿机
容器名是随机的
如果不指定一个镜像的版本标签,例如你只使用centos,Docker将默认使用centos:latest镜像
容器的命名必须是唯一的

创建随机名容器,并运行centos的终端

# -it表示前端运行

docker run -it centos /bin/bash

创建一个名为test的容器:

docker run —-name test -it ubuntu /bin/bash

后端运行并映射80端口

docker run -dt -p 80:80 --name app_port basebit/xdp-sdk-jre8

自动重启容器

docker run --restart=always --name test

设置环境变量

docker run --rm -it --name test \
--env MYHOME=/home \
--env TEST=/home \
--env PATH=$PATH:/home \
centos bash

Comand Options

options desc
-i 保证容器中的STDIN是开启的
-t 为要创建的容器分配一个伪tty终端
-d/--detach 后台运行容器,并返回容器ID
--name 指定容器名称
-e 设置环境变量
--link 链接到另外一个容器
--rm 当容器退出时自动删除它
-v/--volume 挂载数据卷(映射的卷),可以使用多次,即挂载多个数据卷
--restart 重启策略( unless-stopped|always)
-p/--publish 控制Docker在运行时应该公开哪些网络端口给外部(宿主机)
-P 对外公开在Dockerfile中的EXPOSE指令中设置的所有端口
--hostname 设置容器host

查看容器

列出正在运行的容器

docker ps

列出全部容器

docker ps -a

最后一次运行的容器

docker ps -l

获取容器元数据

docker inspect CONTAINER
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' CONTAINER

查看容器进程

docker top CONTAINER

查容器的端口映射

docker port CONTAINER

查看容器日志

docker logs CONTAINER

# 跟踪日志输出, 效果类似于tail -f
docker logs -f CONTAINER

# 获取日志最后10行
docker logs --tail 10 CONTAINER 

# 获取最新日志
docker logs -ft --tail 0 CONTAINER

# 匹配日志
docker logs CONTAINER 2>&1| grep "ERROR"

导出容器快照到本地镜像

docker export CONTAINER > XOS.tar

导入容器快照为镜像

# 本地容器
cat XOS.tar | docker import - lqshow/test:v1.0

# 网络容器
docker import http://example.com/exampleimage.tgz lqshow/test:v2.0

从容器里拷贝文件到本地

docker cp a136a050da25:/home/file.txt ./

从本地拷贝文件到容器里

docker cp Dockerfile xdp-workspace-api:/data/project/service/logs/workspace/

容器重名

docker rename CONTAINER NEW_NAME

停止、启动、杀死、重启一个容器

docker stop CONTAINER
docker start CONTAINER
docker kill CONTAINER
docker restart CONTAINER

删除容器

运行中的容器是不能删除的,必须先stop或者kill

删除单个容器

docker stop CONTAINER && docker rm CONTAINER

删除所有容器

docker rm 'docker ps -a -q'

删除所有退出的容器

docker stop $(docker ps -a | grep "Exited" | awk '{print $1 }')
docker rm $(docker ps -a | grep "Exited" | awk '{print $1 }')

进入容器

附加到一个运行的容器上面(前提是此Container已经运行中)

命令输完后,需按下回车才能进入该会话
退出容器(不关闭容器):Ctrl+P+Q
退出容器(关闭):exit

docker attach CONTAINER

运行交互式的容器

# 在容器中打开交互式任务
docker exec -it a136a050da25 /bin/bash

# 以root权限进入容器
docker exec -it -u root docker-jenkins /bin/bash

在运行的容器中执行命令

在容器内创建空文件

docker exec -d a136a050da25 touch /home/new_file

查看环境变量

docker exec -it 7984cfc7d174 env

查看host文件

docker exec -it 7984cfc7d174 cat /etc/hosts

镜像部分

结构

仓库名/镜像名:标签
如果没指定任何标签,Docker自动为镜像设置一个latest标签

列出所有镜像

docker images

查找现有镜像(来源:Docker hub公共的可用镜像)

docker search image_name

下载镜像

docker pull image_name
docker pull docker-reg.basebit.me:5000/basebit/xdp-sdk-jre8

重命名镜像

docker tag image_name new_image_name

删除镜像

删除一个镜像

docker rmi image_name

删除多个镜像

docker rmi image_name image_name2

删除所有镜像

docker rmi `docker images -a -q`

删除none镜像

# 停止容器 
docker stop $(docker ps -a | grep "Exited" | awk '{print $1 }')

# 删除容器 
docker rm $(docker ps -a | grep "Exited" | awk '{print $1 }')

# 删除镜像
docker rmi $(docker images | grep "none" | awk '{print $3}') 

获取镜像的创建历史

docker history image_name

发布镜像到Docker Hub

docker push lqsow/static_web

批量删除repository ,tag 为none 的镜像

docker images |grep none|awk '{print $3}'|xargs docker rmi

保存(导出)镜像

docker save <image_id>  > <image_name>.tar

加载(导入)镜像

docker load < img_java.tar

Reference

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant