查看
# 查看信息
docker info
# 查看运行中的进程
docker ps
# 查看全部
docker ps -a
docker ps -all
# 显示最后运行
docker ps -l
日志
# 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)
为这些命令创建别名
# 杀死所有正在运行的容器.
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
镜像
# 查看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
一个完整的运行步骤
# 第一次运行
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)
docker cp :用于容器与主机之间的数据拷贝。
1、从容器里面拷文件到宿主机
答:在宿主机里面执行以下命令
docker cp 容器名:要拷贝的文件在容器里面的路径 要拷贝到宿主机的相应路径
docker cp project:/opt/cdc.txt /home/
2、从宿主机拷文件到容器里面
答:在宿主机里面执行如下命令
docker cp 要拷贝的文件路径 容器名:要拷贝到容器里面对应的路径
docker cp /home/ccc.txt project:/opt/