目录
Docker简介
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
Docker 安装
Docker下载加速
下面是经常会用到Docker命令,希望能帮助到大家
制作docker镜像命令
docker commit 容器ID 新的镜像名
链接Docker容器
--link 链接Docker容器,被链接到的容器必须为运行状态,否则无法链接
为新建立的容器命名
docker run --name 你给容器起的名字
查看docker容器
docker ps -a
查看已下载的docker镜像
docker images
删除docker容器命令
docker rm -f 容器ID
删除docker镜像
docker rmi 镜像ID
进入docker容器
sudo docker exec -it 容器ID /bin/bash
第一次启动docker镜像
docker run -d -p 宿主机port:docker容器port 制作者/镜像名
停止docker容器
docker stop 容器ID
启动docker容器
docker start 容器ID
重启宿主机后docker不会随机启动,需要我们手动启动
sudo service docker start
重启docker进程
systemctl restart docker
重启docker守护进程
sudo systemctl daemon-reload
关闭docker
systemctl stop docker
docker开机自启
sudo systemctl enable docker
直接在宿主机使用docker容器内应用
docker exec -it 容器名 command内容
10.19日更新,只更新了一条命令,比较复杂
docker挂载目录到宿主机命令
多条指令用 ” \ 来换行做区分
最后一个指令要写上需要启动的镜像ID或镜像名
docker run \
--name 给容器起到名字 \
-v /root/nginx/html:/usr/share/nginx/html \
-v /宿主机目录:docker容器内目录 \
镜像名或镜像ID
11.9日更新
导出docker images
docker save -o /你想导出的目录/你想导出的镜像名(自己编写).tar 镜像ID
导入docker images
docker load</镜像所在目录/镜像名.tar
导出docker container
docker export container名 > /你想导出的目录/你想导出的镜像名(自己编写).tar
导入docker container
docker import /你想导出的目录/你想导出的镜像名(自己编写).tar
给docker镜像改名
docker tag IMAGEID(镜像id) REPOSITORY:TAG(仓库:标签)
11.19日更新
docker拷贝到容器
docker cp 你要拷贝的文件夹名 container名: container内目标路径
docker容器内文件拷贝到宿主机
docker cp container名:被拷贝文件名 目标宿主机目录
19年03.20日更新
今天发现漏俩很常用的参数命令给补充上,常用命令就这些,几本没有什么可以再更新的了,下次我将会展开docker compose的教程和命令,
重启docker后容器也重启
--restart=always
如果已经启动了则可以使用如下命令
docker update --restart=always 容器名
后台运行
-d
link容器时起别名
--line 别名:被链接的容器名
19年04.08日更新
显示所有容器IP地址
docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)
批量删除镜像 匹配引号内的内容
docker rmi $(docker images | grep "none" | awk '{print $3}')
19年06.13日更新
docker volume命令
# 创建一个名为redis-data的持久化存储
docker volume create redis-data
# 检查持久化存储的信息
docker volume inspect redis-data
# 列出所有持久化存储
docker volume ls
# 删除所有持久化存储
docker volume prune
# 删除一个名为redis-data的持久化存储
docker volume rm redis-data
查看docker容器资源占用情况
docker stats
查看docker容器大小
cd /var/lib/docker/containers && du -sh *
查看docker 网络
docker network ls
20年02.24日更新
创建volume并命名
docker volume create --name volumename
查看volume
docker volume ls
查看volume位置和信息
docker volume inspect [volume name]
删除volume
docker volume rm [volume name]
这一部分内容选自https://www.jianshu.com/p/8c22cdfc0ffd
docker compose中创建并使用volume
version: "3.2"
services:
web:
image: alpine
volumes:
- mydata:/data
web1:
image: alpine
volumes:
- mydata:/data
volumes:
mydata:
dbdata:
不同docker compose文件中container的数据共享和上面的方法一样但是需要external
但是前提你必须要有mydata这个volume 如果没有,可以使用docker volume create –name=mydata创建。当你加上external docker不会帮你创建volume而是去找这个volume是否存在,如果找不到就会报错。
version: "3.2"
services:
web:
image: alpine
volumes:
- mydata:/data
web1:
image: alpine
volumes:
- mydata:/data
volumes:
mydata:
external: true
容器和容器之间的数据共享
使用–volumes-from
docker run -it -h NEWCONTAINER --volumes-from container-test debian /bin/bash
使用–volumes-from, docker run -it -h NEWCONTAINER –volumes-from container-test debian /bin/bash 意思是,将container-test这个container中的volume挂载到当前将要运行起来的容器中。前提是container-test中的volumes必须被创建过,但是container-test可以是被stop的,原因是volume只能被手动删除,不是随着容器停止而被删除
本文由 NG6 于2018年09月27日发表在 sleele的博客
如未特殊声明,本站所有文章均为原创;你可以在保留作者及原文地址的情况下转载
转载请注明:Docker进阶实用命令 20年02.24日更新 | sleele的博客
在评论里补充一个,查看docker持久化volumes大小