https://docs.docker.com/engine/install/ubuntu/
docker pull ubuntu
示例:
docker run --name helloword -it -v /home/主机路径:/home/container路径 ubuntu bash
--name
设置CONTAINER名称,如果为空则随机生成-v
设置主机与CONTAINER的共享目录 主机绝对路径
:container绝对路径
ubuntu
对应的是镜像名称docker ps -a
执行结果如下:
docker ps -a [8:07:29]
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7b04183a5d84 ubuntu "bash" 7 hours ago Up 7 hours helloword
7738a2fd18f1 ubuntu "bash" 7 hours ago Exited (0) 7 hours ago quirky_mccarthy
docker attach $NAMES
docker attach $CONTAINER ID
示例:
通过NAME
进入
docker attach helloword
通过CONTAINER ID
进入
docker attach 7b04183a5d84
如果容器本身是后台运行的,比如:mysql的容器。
docker exec -it 276d1b225c0b bash
exec 命令
-i -t 参数 docker exec 后边可以跟多个参数,这里主要说明 -i -t 参数。 只用 -i 参数时,由于没有分配伪终端,界面没有我们熟悉的 Linux 命令提示符,但命令执行结果仍然可以返回。 当 -i -t
参数一起使用时,则可以看到我们熟悉的 Linux 命令提示符。
docker rm $NAMES
docker rm $CONTAINER ID
docker stop $CONTAINER ID
docker start $CONTAINER ID
查看总体空间占用情况
docker system df
查询空间占用细节
docker system df --verbose
查看CONTAINER空间占用
docker ps --size
docker images
格式:docker rmi $CONTAINER ID
docker rmi a404d6ba5c24
其实在一些场景中,我是把docker当成一种高效的虚拟机使用的。在使用虚拟机的过程中我是经常会用到虚拟机的快照功能的,那么docker是否有类似与快照的功能呢?我们这里只考虑本地备份与还原,不上传到Docker注册中心。
参考:
https://www.linuxidc.com/Linux/2015-08/121184.htm
# 查CONTAINER ID 我们这里查到的是b660e10ca5d9
docker ps
# 创建快照
# 格式:docker commit -p ${CONTAINER ID} ${备份的名称}
docker commit -p b660e10ca5d9 ubuntu-v0.1
稍等片刻,执行结果如下:
# docker commit -p b660e10ca5d9 ubuntu-v0.1
sha256:a404d6ba5c2468135e56012b6c02320f2f1125d97bf5508fa15717d6daa631d3
查询快照
docker images
执行结果中就可以查看到我们刚才制作的快照了,变成一个镜像啦。
REPOSITORY | TAG | IMAGE ID | CREATED | SIZE |
---|---|---|---|---|
ubuntu-v0.1 |
latest | a404d6ba5c24 | About a minute ago | 1.06GB |
ubuntu | latest | ba6acccedd29 | 6 weeks ago | 72.8MB |
有镜像了,怎么使用不必多说了吧。就跟从网上下载的镜像一样使用就行了。
比如:
docker run --name demo -it -v /home/demo:/home/ ubuntu-v0.1 zsh
注意后面的ubuntu-v0.1
快照分享
竟然我们的镜像做好了,能否分享呢?能否移植到其他的机器呢?
docker save -o ~/ubuntu-v0.1.tar ubuntu-v0.1
稍等片刻,过程中没有日志。运行结束后,我们发现~/目录下已经生成了镜像文件了。
既然上面生成了备份文件,那么可以还原镜像前面的备份才有意义可言。
docker load -i ~/ubuntu-v0.1.tar
结束后,执行:
docker images
发现我们的镜像已经成功了加载 了。
docker中启动所有的容器命令
docker中 启动所有的容器命令
docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)
docker中 关闭所有的容器命令
docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)
docker中 删除所有的容器命令
docker rm $(docker ps -a | awk '{ print $1}' | tail -n +2)
docker中 删除所有的镜像
docker rmi $(docker p_w_picpaths | awk '{print $3}' |tail -n +2)
tail -n +2 表示从第二行开始读取
把id=82d2d47667cf的image设置成REPOSITORY=mysql和TAG=5.7.37
docker tag 82d2d47667cf mysql:5.7.37
删除image
docker image rm mysql5.7.37:latest
https://www.linuxidc.com/Linux/2015-08/121184.htm
https://blog.51cto.com/441274636/1898049