Docker快速入门之命令行

网友投稿 275 2022-10-18

Docker快速入门之命令行

docker服务

#启动docker systemctl start docker #查看docker状态 systemctl status docker

安装镜像加速

tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [" } EOF #重启docker守护进程 systemctl daemon-reload #重启docker服务 systemctl restart docker

开机启动服务

systemctl enable docker

docker命令分类

Docker环境信息 — docker [info|version] 容器生命周期管理 — docker [create|exec|run|start|stop|restart|kill|rm|pause|unpause] 容器操作管理 — docker [ps|inspect|top|attach|wait|export|port|rename|stat] 容器rootfs命令 — docker [commit|cp|diff] 镜像仓库 — docker [login|pull|push|search] 本地镜像管理 — docker [build|images|rmi|tag|save|import|load] 容器资源管理 — docker [volume|network] 系统日志信息 — docker [events|history|logs]

docker镜像命令

pull命令

docker pull nginx:1.21.5

images命令

#列出本机已有的镜像 docker images #列出指定REPOSITORY名称的镜像 docker images [REPOSITORY]

save命令

mkdir /home/volumes #两种方式都可以 docker save tomcat:9.0.20-jre8-alpine -o /home/volumes/tomcat9.tar docker save tomcat:9.0.20-jre8-slim > /home/volumes/tomcat9.slim.tar #多个镜像一起保存 docker save \ tomcat:9.0.20-jre8-alpine \ tomcat:9.0.20-jre8-slim \ tomcat:9.0.20-jre8 \ -o /home/volumes/tomcat9.0.20.tar

load命令

#两种方式都可以 docker load -i /home/volumes/linux.tar docker load < /home/volumes/tomcat9.0.20.tar

docker export和docker import的作用跟save和load命令类似,前者是导出/导入编译的后的文件,后者是保存/加载docker数据文件

search命令

#从官方仓库查找tomcat镜像-推荐直接去docker hub官网查询 docker search tomcat

inspect命令

#获取镜像的详细信息 docker inspect nginx:1.21.5 #只获取镜像详细信息中的某个属性-“Size”可替换为详情中的其他属性 docker inspect -f {{".Size"}} nginx:1.21.5

history命令

#获取镜像各层的信息 docker history nginx:1.21.5

tag命令

#标记本地镜像,将本地镜像归入某一仓库 docker tag tomcat:9.0.20-jre8-alpine 192.168.58.101/tomcat:9

rmi命令

#三种删除方式都一样 #推荐通过镜像名称和版本来删除,image的ID在终端长度未完全显示,ID值会出现重复 docker rmi tomcat:9.0.20-jre8-alpine docker image rm tomcat:9.0.20-jre8-alpine docker rmi ee7cbd482336 #强制删除,推荐先删除引用镜像的容器,再删除这个镜像 docker rmi -f nginx:1.21.5

prune命令

#清理临时镜像,可以释放存储空间 docker image prune #清理所有没有用到的镜像,可以释放空间 docker image prune -a

-a, --all : 删除所有没有用的镜像,而不仅仅是临时文件; -f, --force :强制删除镜像文件,无需弹出提示确认;

#查看的镜像 docker images -f dangling=true #删除的镜像 docker rmi $(docker images -f dangling=true -q)

docker容器命令

run命令

#后台启动tomcat容器并映射到宿主机8080端口 docker run -itd -p 8080:8080 tomcat:9.0.20-jre8-alpine #启动后达梦8并将容器中的数据文件移动到“/dm8/data_init/”目录,然后通过挂载同步到宿主机目录,“--rm”启动后自动删除容器 docker run --rm -v /home/volumes/dm8:/dm8/data_init dm8dba:v8 mv /dm8/data/PROD /dm8/data_init/

-d, --detach=false: 后台运行容器,并返回容器ID -i, --interactive=false: 以交互模式运行容器,通常与 -t 同时使用 -P, --publish-all=false: 随机端口映射,容器内部端口随机映射到主机的端口。不推荐各位小伙伴使用该参数 -p, --publish=[]: 指定端口映射,格式为:主机(宿主)端口:容器端口,推荐各位小伙伴们使用 -t, --tty=false: 为容器重新分配一个伪输入终端,通常与 -i 同时使用 --name="nginx-lb": 为容器指定一个名称 -h , --hostname="laosiji": 指定容器的hostname -e , --env=[]: 设置环境变量,容器中可以使用该环境变量 --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型 --link=[]: 添加链接到另一个容器;不推荐各位小伙伴使用该参数 -v, --volume : 绑定一个卷,即挂载宿主机目录,用来做数据持久化 --privileged=false: 指定容器是否为特权容器,特权容器拥有所有的capabilities --restart=no:指定容器停止后的重启策略 ​ no:容器退出时不重启 ​ on-failure:容器故障退出(返回值非零)时重启 ​ always:容器退出时总是重启,推荐各位小伙伴们使用 --rm=false: 指定容器停止后自动删除容器,不能以docker run -d启动的容器

docker挂载前同步数据

#临时启动一次,同步数据文件到宿主机,这一步相当于docker cp容器中的文件到宿主机 #启动后达梦8并将容器中的数据文件移动到“/dm8/data_init/”目录,然后通过挂载同步到宿主机目录,“--rm”启动后自动删除容器 docker run --rm -v /home/volumes/dm8:/dm8/data_init dm8dba:v8 mv /dm8/data/PROD /dm8/data_init/ #再正常创建启动创建达梦并添加挂载 docker run -itd --name dm8 -v /home/volumes/dm8:/dm8/data -p 5236:5236 dm8dba:v8 #临时启动一次,同步nginx.conf到宿主机,如果直接挂载的话会把宿主机的空文件夹同步到容器中,导致容器运行不起来,这一步相当于docker cp容器中的文件到宿主机 docker run --rm -v /home/volumes/nginx:/home/nginx nginx:1.21.5 mv /etc/nginx/nginx.conf /home/nginx #在正常创建启动nginx容器并添加挂载 docker run -itd --name nginx -v /home/volumes/nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/volumes/nginx/html:/usr/share/nginx/html -p 80:80 nginx:1.21.5

logs命令

#获取容器名为tomcat9的日志 docker logs -f tomcat9

rm命令

#删除tomcat9容器 docker rm tomcat9 #强制删除tomcat9容器 docker rm -f tomcat9

ps命令

#列出所有运行中的容器 docker ps docker ps -a docker ps -q docker ps -qa #查询停止运行的容器 docker ps -a | grep Exited #查询停止运行的容器-只显示容器ID docker ps -a | grep Exited | awk '{print $1}'

a :显示所有的容器,包括未运行的。 -q :只显示容器编号。

组合命令

停止所有运行容器 docker stop $(docker ps -qa) 删除所有的容器 docker rm -f $(docker ps -qa) docker rm $(docker stop $(docker ps -q)) 删除所有的镜像 docker rmi -f $(docker images -q)

create命令

#只创建容器不启动,大部分参数跟run命令一样 docker create -it --name tomcat9 -p 8080:8080 9.0.20-jre8-alpine

启动、重启、终止容器

docker start :启动一个或多个已经被停止的容器

docker stop :停止一个运行中的容器

docker restart :重启容器

exec命令

#有bash命令的linux系统,例如centos docker run -it --name tomcat9.1 -p 8080:8080 tomcat:9.0.20-jre8-slim docker exec -it tomcat9.1 /bin/bash #没有bash命令的linux系统,例如alpine系统 docker run -it --name tomcat9.2 -p 8081:8080 tomcat:9.0.20-jre8-alpine docker exec -it tomcat9.2 sh

-i :即使没有附加也保持STDIN 打开 -t :分配一个伪终端

inspect命令

#获取容器的详细信息-“tomcat9”为容器名 docker inspect tomcat9

update命令

docker run -it --name tomcat9 -p 8081:8080 tomcat:9.0.20-jre8-alpine #更新容器restart策略,该命令还不成熟,推荐rm容器再run一个新的 docker update --restart always tomcat9

#创建自己的网络类型并指定网段 docker network create --subnet=172.18.0.0/16 mynetwork #查看创建的子网 docker network ls #通过镜像创建容器并启动 docker run -itd --name 容器名称 REPOSITORY:TAG /bin/bash #通过镜像创建容器并启动运行时指定自己的网络IP docker run -itd --name 容器名称 --net mynetwork --ip 172.19.0.103 REPOSITORY:TAG /bin/bash

docker空间清理

#docker空间占用 docker system df #docker空间清理 docker system prune #docker数据卷查看 docker volume list #docker无用数据卷清理 docker volume prune #清理临时镜像 docker image prune #清理所有没有用到的镜像 docker image prune -a #按过滤条件查询镜像 docker images|grep 192.168 #按过滤条件查询镜像只输出第三列(IMAGE ID) docker images|grep 192.168|awk '{print $3}' #按过滤条件查询镜像并删除 docker images|grep 192.168|awk '{print $3}'|xargs docker rmi

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:对部署_nginx_pm2_docker的研究3
下一篇:Java 详解Map集合之HashMap和TreeMap
相关文章

 发表评论

暂时没有评论,来抢沙发吧~