基于博主使用与学习过程,持续更新......
-
重启
systemctl daemon-reload systemctl restart docker # 开机启动 systemctl enable docker -
管理
# 删除所有容器 docker rm -f `docker ps -a -q` # 删除无引用的镜像 docker image prune -a -f # 删除所有镜像 docker rmi `docker images -q` # 重启所有容器 docker restart `docker ps -a -q` -
docker
docker run {dockerParameter} {image} {containerParameter}
{dockerParameter}为docker create时期的docker参数①,只会在创建的时候执行生效一次并作用于容器整个生命周期,而{containerParameter}为docker start时期的容器参数②,每次启动都会执行并生效,因此通过-e配置的用户名密码类的环境变量不会因为每次重启容器,将已修改的用户名密码还原-
rm:删除容器 -
rmi:删除镜像 -
f:强制执行,一般配合删除镜像或容器一起使用 -
run:启动容器 -
exec:进入容器 -
inspect:查看镜像或容器的详情 -
search:搜索镜像,或访问https://hub.docker.com,搜索相关镜像详细说明,点击版本信息可查看Dockerfile,可阅读相关配置 -
pull:拉取镜像 -
logs:查看容器运行日志 -
start:启动,每次开启,程序重新加载容器参数②并开启进程 -
stop:关停,每次关闭,程序会结束进程 -
restart:重启,每次关闭,程序首先结束进程,再重新加载容器参数②并开启进程start、stop、restart,虽然不会清空容器内的数据,但是不同于虚拟机挂起模式,不会保留操作当时的状态,而是类似于虚拟机或计算机的开关机操作,每次操作都会进入全新的状态,只是运行的数据被保留
-
-
docker run
-
-d:后台模式运行 -
-i:交互模式运行 -
-t:分配一个伪输入终端,通常与 -i 同时使用
-d与-it是两种不同容器运行方式,可根据实际情况使用,一般运行容器使用-d,进入容器使用-it -
-p(--publish):映射宿主机端口,前面为宿主机后面为容器 -
-v(--volume):挂在宿主机目录,方便拷贝或迁移数据,前面为宿主机后面为容器,会将宿主机的数据覆盖至容器,其作用:使容器能够更方便的访问宿主机的文件数据将容器内的数据存储至宿主机,避免因容器的修改、删除、重建、损坏而丢失数据
-
h:指定容器主机名 -
m:指定容器内存大小,一般与--memory-swap共同作用。异常不生效时,参考:https://blog.csdn.net/qq23ue/article/details/86637460 -
cp:宿主机与容器文件拷贝- docker cp {container}:{path} {hostPath}:将容器内的文件拷贝至宿主机
- docker cp {hostPath} {container}:{path}:将宿主机的文件拷贝至容器内
-
-e:设置环境变量(docker参数①),如docker run ...... -e JAVA_HOME=/var/java ...... -
--name:容器名称 -
--net:网络模式(使用host模式时,-p参数就不需要了) -
--privileged=true:设置容器特权。设置为true时,容器内的root拥有宿主机真正的root权限,设置为false时,容器内的root只是宿主机的一个普通用户权限 -
--log-opt:日志参数,常用max-size(文件大小)与max-file(文件数量) -
--{containerParameter} {containerParameterValue}:容器参数②,如docker run ...... --JAVA_HOME /var/java
-
-
docker exec:进入容器,示例:docker exec -it {container} {}
-
/bin/bash|/bin/sh|bash|sh
*在容器中,键入exit退出容器
*bash是sh的完整版,bash完全兼容sh命令,反之不行,具体那个可行需要看容器的基础镜像的脚本解释器
-
-
docker logs:查看容器日志
-
-f:实时日志 -
-t:查看日志产生日期 -
--since:输出指定日期之后的日志 -
--tail=N:输出前N条日志
-
docker info:查看docker信息
-
国内源配置,参考:https://www.cnblogs.com/anliven/p/6218741.html | https://www.jianshu.com/p/4ef9cc9c2092
-
阿里云
产品与服务->容器镜像服务->镜像中心->镜像加速器# 主流方式(在/etc/docker目录增加daemon.json文件,并在文件中配置镜像仓库地址) sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://1234abcd.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker # centos环境下的其他方式(配置未生效,猜测此配置方式已过时) sudo cp -n /lib/systemd/system/docker.service /etc/systemd/system/docker.service sudo sed -i "s|ExecStart=/usr/bin/docker daemon|ExecStart=/usr/bin/docker daemon https://1234abcd.mirror.aliyuncs.com|g" /etc/systemd/system/docker.service sudo systemctl daemon-reload sudo systemctl restart docker -
使用公共镜像仓库地址
Docker-CN: https://registry.docker-cn.com
-
Azure中国镜像: https://dockerhub.azk8s.cn
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn","https://dockerhub.azk8s.cn"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
-
启动该方式指定仓库
# 如果源地址为:registry-1.docker.io/v2 docker pull registry-1.docker.io/v2/{images} -
扩展
-
docker swarm,用于docker应用的集群负载管理: -
docker compose,用于定义和运行多容器 docker应用程序: -
docker machine,用于创建集群主机的docker容器环境:
-
-