https://docs.docker.com/engine/install/ubuntu/
下载镜像docker pull ubuntu
创建一个CONTAINER
示例:
docker run --name helloword -it -v /home/主机路径:/home/container路径 ubuntu bash
- 参数
--name
设置CONTAINER名称,如果为空则随机生成 - 参数
-v
设置主机与CONTAINER的共享目录主机绝对路径
:container绝对路径
- 这里
ubuntu
对应的是镜像名称 - bash是你要执行的命令
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
进入CONTAINER
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 命令提示符。
退出CONTAINER- 快捷键ctrl -p ctrl-q 退出并让CONTAINER后台运行
- 命令exit退出,会直接让CONTAINER关机
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
删除image
格式:docker rmi $CONTAINER ID
docker rmi a404d6ba5c24
CONTAINER备份与还原(快照)
其实在一些场景中,我是把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
执行结果中就可以查看到我们刚才制作的快照了,变成一个镜像啦。
REPOSITORYTAGIMAGE IDCREATEDSIZEubuntu-v0.1
latesta404d6ba5c24About a minute ago1.06GBubuntulatestba6acccedd296 weeks ago72.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中 启动所有的容器命令
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 表示从第二行开始读取
设置image的REPOSITORY和TAG把id=82d2d47667cf的image设置成REPOSITORY=mysql和TAG=5.7.37
docker tag 82d2d47667cf mysql:5.7.37
通过REPOSITORY和TAG删除image
删除image
docker image rm mysql5.7.37:latest
参考文献
https://www.linuxidc.com/Linux/2015-08/121184.htm https://blog.51cto.com/441274636/1898049