目录
Docker是什么?
"Docker"一词指代了多个概念,包括开源社区项目、开源项目使用的工具、主导支持此类项目的公司 Docker Inc.,以及该公司官方支持的工具。这些技术和公司的同名可能会造成混淆。
以下简要说明 Docker 以便区分:
- IT 软件"Docker"是支持创建和使用 Linux® 容器的容器化技术。
- 开源 Docker 社区致力于改进这类技术,并免费提供给所有用户,使之获益。
- Docker Inc. 公司凭借 Docker 社区产品起家,主要负责提升社区版本的安全性,并将技术进步与广大技术社区分享。此外,它还专门对这些技术产品进行完善和安全固化,以服务于企业客户。
- 借助 Docker,您可将容器当做轻巧、模块化的虚拟机来使用。同时,您还将获得高度灵活性,实现对容器的高效创建、部署及复制,并在环境之间迁移它们,从而有助于您针对云来优化应用。
1.镜像管理
1.1.搜索镜像
docker search 镜像的名字
1.2.拉取镜像
docker pull 镜像的名字
1.3.查看本地镜像
docker images
docker image ls
docker images -q 只列出镜像的id
docker images --format “{{.ID}}--{{.Repository}}” 格式化显示镜像
docker images --format “ table {{.ID}}\t{{.Repository}}\t{{.Tag}}" 以表格形式显示
1.4.删除镜像
docker rmi 镜像id
批量删除镜像
docker rmi `docker images -qa`
1.5.导入镜像
docker image load -i /opt/centos7.8.2003.tar
1.6.导出镜像
docker image save centos:7.8.2003 > /opt/centos7.8.2003.tar
centos:7.8.2003镜像信息,/opt/centos7.8.2003.tar导出后的路径和格式
1.7.查看镜像详细信息
docker image inspect 镜像id
2.容器管理
2.1.查看运行的容器
docker ps
2.2.查看停止的容器
docker ps -a
2.3.容器的重启、停止、启动
docker restart/stop/start 容器id
2.4.查看容器的详细信息
docker container inspect 容器id
2.5.查看容器端口转发情况
docker port 容器id
2.6.查看容器内进程信息
docker top 容器id
2.7.查看容器内资源
docker stats 容器id
2.8.查看容器的具体信息
docker inspecet 容器id
2.9.进入容器
docker exec -it 容器id bash //进入正在运行的容器
docker run -p 85:80 nginx //容器的端口映射85是宿主机的端口,80是容器的端口
docker run -P nginx 随机端口映射
docker run - it --rm -d --name test --ip 192.168.159.152 容器id/名字 bash/sh
-i 交互式命令操作
-t 开启一个终端
bash 在进入容器后执行的命令 //其实就相当于shell解释器
--rm 容器挂了后自动删除容器记录
-d 在后台运行
--name test 给容器起一个名字叫test
--restart=always //容器挂了后自动重启
--net //网桥名字
--ip //分配容器的ip
--cups=0.5 //限制cpu的使用率
--privileged=true //表示启用容器的超级权限,启用超级权限的时候需要以/usr/sbin/init命令启动不然超级权限不会生效
注意事项:
- docker run 等于创建加启动,如果镜像不存在在本地则会去下载镜像
- 容器内的进程必须处于前台运行状态,否则容器会直接退出
- 如果容器内,什么事也不做,容器也会挂掉,容器内,必须有一个进程在前台运行,//例如docker run nginx 容器会直接挂掉
2.10.传输本地文件到容器中
docker cp 本地文件路径 容器ID:容器中的存储路径
2.11.传输容器中的文件到本地
docker cp 容器ID:容器中的路径 本地存储路径
2.12.退出容器
exit
2.13.删除容器
docker rm 容器id
强制删除容器
docker rm -f 容器id
2.14. 阻塞容器
用于阻塞docker容器,并在容器退出是打印退出码,当容器不在运行的时候,直接输出0;可以用来监控容器是否正常退出
docke wait 容器ID/容器名字
3.日志管理
3.1.查看容器日志
所有日志
docker logs 容器id
相当于tail -f,实时的刷新日志
docker logs -f 容器id
4.网络管理
4.1.列出所有网桥
docker network ls
4.2.查看网络信息
docker network inspect 网络类型
4.3.创建新的网桥
docker network create --subnet=192.168.159.0/24 NetTest
4.4.删除创建的网桥
docker network rm net_name
5.容器打包成镜像
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
docker commit -a 'LML' -m 'This is a container image' 容器ID 容器打包后的镜像名字:标签
Option 功能
-a 指定新镜像作者
-c 使用 Dockerfile 指令来创建镜像
-m 提交生成镜像的说明信息
-p 在 commit 时,将容器暂停|
6.容器打包成tar包
docker save -o tar包名称.tar 待打包镜像名称:待打包镜像版本
演示:
docker save -o mysql-lml-docker.tar mysql-lml-docker:v1.0
7.tar包载入镜像
docker load [OPTIONS] tar包名称.tar
演示:
docker load -i mysql-lml-docker.tar