Docker简介
Docker是一个开源的应用容器引擎,让开发者可以打包应用及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上。使用Docker可以更方便地打包、测试以及部署应用程序。
Docker 镜像常用命令
搜索镜像
docker search java
下载镜像
docker pull java:8
列出镜像
docker images
删除镜像
- docker rmi java
- docker rmi -f java
- docker rmi -f $(docker images)
删除所有没有引用的镜像
docker rmi `docker images | grep none | awk '{print $3}'`
Docker 容器常用命令
新建并启动容器
docker run -p 80:80 --name nginx \
-e TZ="Asia/Shanghai" \
-v /mydata/nginx/html:/usr/share/nginx/html \
-d nginx:1.17.0
- -p:将宿主机和容器端口进行映射,格式为:宿主机端口:容器端口;
- --name:指定容器名称,之后可以通过容器名称来操作容器;
- -e:设置容器的环境变量,这里设置的是时区;
- -v:将宿主机上的文件挂载到宿主机上,格式为:宿主机文件目录:容器文件目录;
- -d:表示容器以后台方式运行。
列出容器
docker ps
停止容器
注意:ContainerId表示容器ID,可以使用容器名称的命令,基本也支持使用容器ID,比如下面的停止容器命令。
docker stop $ContainerId
强制停止容器
docker kill $ContainerId
启动已停止的容器
docker start $ContainerId
进入容器
- docker inspect --format "{{.State.Pid}}" $ContainerId
- nsenter --target "$pid" --mount --uts --ipc --net --pid
删除容器
- docker rm $ContainerId
- docker rm -f $(docker ps -a -q)
查看启动错误日志
docker logs $ContainerIdName(或者$ContainerId)
查看容器的IP地址(172.17.0.*)
docker inspect --format '{{ .NetworkSettings.IPAddress }}' $ContainerId
同步宿主机时间到容器
docker cp /etc/localtime $ContainerName:/etc/
指定容器时区
docker run -p 80:80 --name nginx \
-e TZ="Asia/Shanghai" \
-d nginx:1.17.0
在宿主机查看docker使用cpu、内存、网络、io情况
- 查看指定容器情况:
docker stats $ContainerName
- 查看所有容器情况:
docker stats -a
- 查看容器磁盘使用情况
docker system df
进入docker内部的bash
docker exec -it $ContainerName /bin/bash
指定账号进入容器内部
# 使用root账号进入容器内部
docker exec -it --user root $ContainerName /bin/bash
查看所有网络
docker network ls
创建外部网络
docker network create -d bridge my-bridge-network
指定容器网络
docker run -p 80:80 --name nginx \
--network my-bridge-network \
-d nginx:1.17.0
Docker容器清理
查看Docker占用的磁盘空间情况
docker system df
删除所有关闭的容器
docker ps -a | grep Exit | cut -d ' ' -f 1 | xargs docker rm
删除所有dangling数据卷(即无用的 volume):
docker volume rm $(docker volume ls -qf dangling=true)