docker 常用命令
docker常用命令
查看docker版本
docker version
查看系统信息,包括镜像和容器数量
docker info
查看容器详细信息
docker inspect 容器id
查看镜像
docker images
查看所有镜像
docker images -a
查看镜像,只列出id
docker images -q
删除镜像
docker rmi 镜像id
删除所有镜像
docker rmi docker images -aq
查看容器
docker ps
查看所有容器
docker ps -aq
查看创建镜像历史过程
docker history 镜像名
运行容器
docker run -itd 容器名/ID
docker run -itd --name 自定义名 -p 81:80 -v 宿主机路径:容器内路径 容器名
可以映射多个路径(可以多个-v)
进入容器
docker exec -it 容器名 /bin/bash
运行容器
docker run -it --restart=always centos:7 /bin/bash
-i 标准输入输出
-t 分配一个终端或控制台
--restart=always 容器随docker engine自启动,因为在重启docker的时候默认容器都会被关闭,也使用于create选项
-d 后台运行容器,并返回容器ID
docker run --rm centos:7 /bin/bash
--rm 当你退出容器后,这个容器就不用了,就可以加--rm,退出容器自动删除
# 注意:--rm和 -d不能共用
定义名字运行容器
docker run -itd --name nginx-1 nginx:latest
映射端口运行容器
docker run -itd -p 3307:3306 mysql:5.7
前面端口可以自己定义
退出容器
exit -- 若要断开与容器的连接,并且关闭容器
ctrl+p+q -- 如果只想断开和容器的连接而不关闭容器
启动容器 、停止容器 和 重启容器
docker start 容器id
docker stop 容器id
docker kill 容器id
--强制终止容器
dockers kill $(docker ps -q)
-- 杀死所有运行中的容器
docker restart 容器ID
让容器运行在后台
docker run -itd 镜像名
docker runn -itd --name 自定义名字 镜像名
进入容器内部
docker exec -it 容器ID /bin/bash
不进入容器内,执行命令
docker exec 容器ID touch /a.txt
修改容器名称
docker rename 要修改的名字 容器名字
删除容器
docker rm 容器id或名称
-- 要删除运行中的容器添加-f
参数
定义格式删除容器
dockers rm $(docker ps -qf staus=exited)
-f 代表过滤
docker pause c7
plause:暂停容器中所有的进程
docekr unpause c7
恢复容器内暂停的进程,与pause对应
下载镜像
docker pull mysql:5.7
上传镜像
docker tag mysql:5.7
docker push 10.31.162.25/qingfeng/mysql:5.7
查看容器详细
先运行容器,可以看到nginx-1的详细信息,包括IP
[root@localhost ~]# docker inspect nginx-1
[root@localhost ~]# curl -I http://172.17.0.3
HTTP/1.1 200 OK
Server: nginx/1.21.5
Date: Wed, 10 Jan 2024 08:28:01 GMT
Content-Type: text/html
Content-Length: 615
Last-Modified: Tue, 28 Dec 2021 15:28:38 GMT
Connection: keep-alive
ETag: "61cb2d26-267"
在开启一个终端:--可以看到日志
[root@yixuan ~]# docker logs -f nginx1
172.17.0.1 - - [10/Jan/2024:08:30:36 +0000] "HEAD / HTTP/1.1" 200 0 "-" "curl/7.29.0" "-"
查看容器进程
docker top 容器名
[root@localhost ~]# docker top nginx-1
容器内外copy文件
docker cp CONTAINER:PATH LOCALPATH --从容器拷贝到本机
docker cp LOCALPATH CONTAINER:PATH --从本机拷贝到容器
[root@localhost ~]# touch a.txt
# copy从容器拷贝到本机
[root@localhost ~]# docker cp nginx-1:/usr/local/bin/a.txt /root
Successfully copied 1.54kB to /root
[root@localhost ~]# echo 1111 >> a.txt
#从本机拷贝到容器
[root@localhost ~]# docker cp /root/a.txt nginx-1:/usr/local/bin/
Successfully copied 2.05kB to nginx-1:/usr/local/bin/
# 进容器验证
root@f772ee281351:/usr/local/bin# cat a.txt
1111
docker容器镜像打包制作
1.先有一个基础镜像,下载------>2.把镜像run起来----->3.进入容器做你的修改-------4.将这个容器打包成一个新镜像。
# 先运行容器
[root@localhost ~]# docker exec -it c7 /bin/bash
[root@ca5b7e391926 /]# yum -y install vim wget lrzsz net-tools
# 打包镜像文件
[root@localhost ~]# docker export -o c7.tar ca5b7e391926
[root@localhost ~]# ls
anaconda-ks.cfg a.txt c7.tar
# 导入新建镜像
[root@localhost ~]# docker import c7.tar c7:7.1
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
c7 7.1 b96f5733ec36 5 seconds ago 471MB
# 运行新建容器
[root@localhost ~]# docker run -it c7:7.1 /bin/bash
通过容器创建本地镜像
[root@localhost ~]# docker exec -it 1376a1631328 /bin/bash
# 创建镜像
[root@localhost ~]# docker commit 1376a1631328 ce:7.2
sha256:a46c03e55013eb5dd0920397c0f818d7aa693cc921554cd3751fa9f91347c3f1
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ce 7.2 a46c03e55013 40 seconds ago 471MB
镜像迁移
# 将镜像打包,与下面的load命令相对应
[root@localhost ~]# docker save -o centos.tar ce:7.2
# 导入dockers镜像
[root@localhost ~]# docker load < centos.tar
d83beba0868c: Loading layer 2.56kB/2.56kB
Loaded image: ce:7.2