docker命令大全

半兽人 发表于: 2017-08-21   最后更新时间: 2021-03-23 17:22:26  
{{totalSubscript}} 订阅, 5,121 游览

查看

# 查看信息
docker info

# 容器运行状态,不想持续的监控,通过 --no-stream 只输出当前的状态:
docker stats

# 查看运行中的进程
docker ps

# 查看全部
docker ps -a
docker ps -all

# 显示最后运行
docker ps -l

# 查看该容器的详细信息
docker inspect 44fc0f0582d9

# 由其该信息非常多,只截取了其中一部分进行展示。如果要显示该容器第一个进行的PID可以使用如下方式
docker inspect -f {{.State.Pid}} 44fc0f0582d9

# 查看容器ip
docker inspect --format='{{.NetworkSettings.IPAddress}}' mycentos3

使用docker exec进入Docker容器

# 使用该命令进入一个已经在运行的容器
docker ps

docker exec -it 775c7c9ee1e1 /bin/bash

镜像

# 查看docker镜像
docker images

# 删除镜像
docker images rmi

# 构建一个镜像
docker build -t holiday /usr/local/docker/holiday #Re-build docker container

# 打包提交拉取
docker tag kafka-monitor:0.2 10.0.23.11:5000/kafka-monitor:0.2
docker push xxx.xxx.xxx.xxx:5000/kafka-monitor:0.1
docker pull xxx.xxx.xxx.xxx:5000/kafka-monitor:0.1

# 停止所有容器
docker ps |grep holiday |awk '{print $1}' |xargs -i docker stop {}

# 提交一个镜像
docker commit 1a442630f4a9 test/javaweb:0.0

日志

# docker日志查询
docker logs 2f2de065fd05

停止与删除

# 杀死所有正在运行的容器
docker kill $(docker ps -a -q)

# 删除所有已经停止的容器
docker rm $(docker ps -a -q)

# 删除所有未打 dangling 标签的镜像
docker rmi $(docker images -q -f dangling=true)

# 删除所有镜像
docker rmi $(docker images -q)

从容器中复制文件

docker cp 371f3ff1f43b:/usr/local/bin/etcdctl /usr/local/bin/etcdctl

为这些命令创建别名

# 杀死所有正在运行的容器.
alias dockerkill='docker kill $(docker ps -a -q)'
# 删除所有已经停止的容器.
alias dockercleanc='docker rm $(docker ps -a -q)'
# 删除所有未打标签的镜像.
alias dockercleani='docker rmi $(docker images -q -f dangling=true)'
# 删除所有已经停止的容器和未打标签的镜像.
alias dockerclean='dockercleanc || true && dockercleani'
另附上docker常用命令
docker version #查看版本
docker search tutorial#搜索可用docker镜像
docker pull learn/tutorial #下载镜像
docker run learn/tutorial echo "hello word"#在docker容器中运行hello world!
docker run learn/tutorial apt-get install -y ping#在容器中安装新的程序

运行

# 运行docker镜像
docker run -i -t -v /root/software/:/mnt/software/ --privileged=true index.alauda.cn/alauda/ubuntu /bin/bash

# 运行一个jenkins镜像的例子命令
sudo docker run \
    -d -p 8088:8080 -p 50000:50000 \
    -v /home/docker/jenkins_home/:/var/jenkins_home \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v $(which docker):/usr/bin/docker \
    -v $(which git):/usr/bin/git \
    -v ~/.ssh:/var/jenkins_home/.ssh \
    --name=jenkins jenkinsci/jenkins

# 运行一个tomcat
docker run --name tomcat-demo -m 1G tomcat:9.0.39-jdk8-openjdk

一个完整的运行步骤

# 第一次运行
sudo docker run --name myjenkins -p 8088:8080 -p 50000:50000 -d docker.io/jenkinsci/jenkins

# 停止
docker stop  myjenkins

# 启动(是没有问题的)
docker start myjenkins

# 重新commit一个新的
docker ps -a 获取到ff2d09d0ddd8

# 提交一个成为新镜像
docker commit ff2d09d0ddd8 test/jenkins:0.2

查看docker运行容器的ip

# 第一次运行
sudo docker run --name myjenkins -p 8088:8080 -p 50000:50000 -d docker.io/jenkinsci/jenkins

# 1. 进入容器内部后
cat /etc/hosts
会显示自己以及(– link)软连接的容器IP

# 2.使用命令
docker inspect --format '{{ .NetworkSettings.IPAddress }}' <container-ID> 
或 
docker inspect <container id> 
或 
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id

# 3. 可以考虑在 ~/.bashrc 中写一个 bash 函数:
    function docker_ip() {
        sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' $1
    }

    source ~/.bashrc 然后:

    $ docker_ip <container-ID>
    172.11.0.6

# 4.要获取所有容器名称及其IP地址只需一个命令。
docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq)
如果使用docker-compose命令将是:
docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)

# 5.显示所有容器IP地址:
docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)


上一条: 在CentOS/RHEL中安装Docker
下一条: docker stats

查看docker更多相关的文章或提一个关于docker的问题,也可以与我们一起分享文章
提问