镜像加速
#!/bin/sh
cat <<-EOF > /etc/docker/daemon.json
{
"registry-mirrors": [
"https://hub.geekery.cn/",
"https://ghcr.geekery.cn"
]
}
EOF
systemctl daemon-reload
systemctl restart docker
https://cloud.tencent.com/developer/article/2459822
查看镜像
docker images
从容器创建一个新的镜像
docker commit -a "runoob.com" -m "my apache" a404c6c174a2 mymysql:v1
导出镜像到本地
docker save -o 将要保存到本地的文件名 要保存的镜像
docker save -o mynginx.tar mynginx:latest
导入保存的镜像
docker load -i {image_name}.tar
docker load --input axis1.4.tar
删除镜像
docker rmi df1
推送镜像到私有仓库
linux
https://blog.youkuaiyun.com/yuchu123456/article/details/108069440
windows
https://zhuanlan.zhihu.com/p/477650194
查看容器
#查看所有正在运行容器
docker ps
#查看所有容器
docker ps -a
#查看所有容器ID
docker ps -a -q
启动进入容器
docker run -it ubuntu /bin/bash
-i: 交互式操作。
-t: 终端。
ubuntu: ubuntu 镜像。
/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash
启动一个或多个已经被停止的容器
docker start 容器ID或容器名
停止一个正在运行的容器
docker stop 容器ID或容器名
docker stop -t=60 容器ID或容器名
-t:关闭容器的限时,如果超时未能关闭则用kill强制关闭,默认值10s,这个时间用于容器的自己保存状态
重启容器
docker restart myrunoob
进入容器
推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。
docker exec -it 容器ID bash
docker exec -it --user root 91af26862191 bash
容器ID可以输入部分或者全部
-i: 让容器的标准输入(STDIN)始终保持打开,即使没有输入任何指令(没有附加)
-t: 分配一个终端,这样我们就可以使用命令来操作
-d: 分离模式,让命令在后台(指的是宿主后台)运行。
–user:指定用户运行,当我们需要 root 用户权限时可以指定。
删除容器
docker rm -f 1e560fca3906
重命名容器
docker rename 原容器名 新容器名
容器间通信
为 mycontainer 的容器将使用宿主机的网络接口,而不是获得自己的网络栈。
docker run -d --name mycontainer --network=host myimage
向 Docker 容器拷贝文件
docker cp <本地文件路径> <容器名或 ID>:<目标路径>
docker cp example.txt mycontainer:/app/
docker cp /www/runoob 96f7f14e99ab:/www/
从 Docker 容器拷贝文件到本地
docker cp <容器名或 ID>:<源路径> <本地文件路径>
docker cp mycontainer:/app/example.txt .
docker cp 96f7f14e99ab:/www /tmp/
挂载主机目录
加载主机的/src/webapp目录到容器的/opt/webapp目录
使用--mount标记可以指定挂载一个本地主机的目录到容器中去
# 方法一
docker run --name session-web -d -p 8888:8080 \ -v my-volume:/webapp \ session-web:latest
# 方法二
docker run --name session-web -d -p 8888:8080 \ --mount type=bind,source=/src/webapp,target=/opt/webapp session-web:latest
本地目录的路径必须是绝对路径