Docker使用指南
上文简单介绍了docker,这边记录一下docker的使用。
一、Docker启停
1、启动docker
systemctl start docker
2、关闭docker
systemctl stop docker
3、重启docker
systemctl restart docker
二、运行docker应用程序
docker run --name 容器名字 --rm -it -p [ip:]主机端口:容器端口 镜像名称 [命令]
run命令:如果本地有镜像,则直接运行,如果本地没有 ,则需要去镜像仓库获取,默认是docker hub。
更多命令可以使用docker run --help查看。
部分常用参数解析:
1、指定容器名,如果缺省,则随机分配
--name 容器名
2、启动交互
i表示交互式,t表示终端
-it
3、后台运行容器
-d
4、指定网络模式
--network:指定网络,连到同一个网络的容器可以互连
当需要多个程序互联组成一个app的话,需要指定网络模式为container
docker run --network=container:容器名或id 容器名[:tag]
5、配置dns
--dns=ip
例如:
docker run --dns=4.4.4.4
配置容器的搜索域
--dns-search=DOMAIN
当设定搜索域为 .example.com 时,在搜索一个名为 host 的主机时,DNS 不仅搜索 host,还会搜索 host.example.com。
6、设置容器的主机名
-h hostname
或
--h=hostname
7、指定映射宿主机端口
-p [ip:]宿主机端口:容器内部端口
例如:将容器内部80端口映射到宿主机8080端口
docker run -p 8080:80 镜像名[:tag]
也可以使用,大写的P
-P
这样就是随机映射宿主机端口
8、容器停止后,自动删除容器
--rm
9、设置环境变量
-e key1=value1
也可从指定文件读取环境配置
--env-file=[]
10、设置运行的用户
-u 用户名
前提是容器内有这个用户
11、设置容器可使用的最大内存
-m 内存大小值
12、设置工作目录
-w 目录
13、绑定数据卷
-v [宿主机目录:]容器目录
如果只有一个目录,则是指定容器内的目录,此时会随机映射宿主机的目录。宿主机目录和容器目录里面的文件是共通的,也就是不论在哪一方添加修改文件,另一方都会感知。
也可以复用其他容器的卷的设置
-volumes-from 其他容器名或id
如果不绑定数据卷的话,在容器关闭的时候,数据也会随着容器死亡而删除,所以需要绑定数据卷将数据保存下来。
三、镜像使用
1、查看本地已有镜像
docker images
2、从docker hub中查找镜像
docker search 镜像名[:版本(也就是tag)]
例如:docker search nginx
docker search nginx:1.19.1
例如查找nginx
其中的OFFICIAL表示是否是官方提供的,因为docker hub上有很多第三方提供的镜像。
3、拉取镜像
docker pull 镜像名[:版本(也就是tag)]
比如获取一个mysql,如果不带tag,默认拉取tag为latest的镜像
拉取下来之后,就可以在本地看到mysql镜像了
4、删除镜像
docker rmi 镜像名[:版本(也就是tag)]
例如删除名为a,tag为latest的镜像
5、设置镜像标签
docker tag 镜像id或者原镜像名:原tag 镜像名:tag
例如:将mysql改成first_mysql:first,mysql的镜像id为0d64f46acfd1
docker tag 0d64f46acfd1 first_mysql:first
或
docker tag mysql:latest first_mysql:first
设置标签会新增一个镜像,原有镜像不会删除或更改
6、创建镜像
有两种方式:
- 1、从已经创建的容器中更新镜像,并且提交这个镜像
- 2、使用 Dockerfile 指令来创建一个新的镜像
注:这边先介绍第一种(命令涉及到容器使用,所以在容器使用小结解说命令),第二种Dockerfile单独一篇说
启动一个nginx,映射到宿主机的8080端口。然后访问nginx首页,默认是如下
(1)运行一个容器 docker run --name nginx -p 8080:80 -d nginx
我需要进入容器将其改成其他页面并保存为一个镜像。
(2)进入容器 docker exec -it nginx /bin/bash
在根目录下创建lsy目录,并创建lsy.html文件
(3)修改nginx.conf文件
因为镜像默认没有vim工具 ,所以需要先后执行如下两个命令
1、更新安装源,获取最新安装包
apt-get update
2、安装vim
apt-get install vim
1、修改配置文件,将首页设置为自定义的lsy.html。
2、提交容器
docker commit -m="描述信息" -a="镜像作者" 容器id 要创建的目标镜像名
3、启动新建的容器,访问首页
docker run -it -p 8080:80 -d --name my_nginx my_own_nginx:v1.0
四、容器使用
1、查看容器
(1)运行中的
docker ps
(2)所有运行过或正在运行的容器
docker ps -a
(3)最新一次运行的容器
docker ps -l
2、启停容器
容器id、容器名获取如下:docker ps -a
(1)启动运行过的容器(也就是docker ps -a 获取的)
docker start 容器id或容器名
(2)停止正在运行的容器
docker stop 容器id或容器名
或
docker kill 容器id或容器名
(3)重启容器
docker restart 容器id或容器名
3、进入后台运行中的容器
#退出后,容器会停止
docker attach 容器id
#退出后,容器不会停止,推荐使用
#例如:docker exec -it 243c32535da7 /bin/bash
docker exec -it 容器id
4、导出和导入容器
(1)导出
docker export 容器id > 导出文件名.tar
(2)导入
docker import 镜像名称:版本
5、删除容器
docker rm -f 容器id或容器名
删除所有已经停止的容器
docker container prune
6、查看容器映射宿主机端口
docker port 容器id或容器名
7、查看容器日志
docker logs 容器id或容器名
8、查看容器进程id
docker top 容器id或容器名
9、查看容器全部信息
docker inspect 容器id或容器名
10、新建docker网络
docker network create -d docker网络类型 网络名称
-d:参数指定 Docker 网络类型
网络模式
配置
说明host–net=host
容器和宿主机共享Network namespace。container–net=container:容器名或id
容器和另外一个容器共享Network namespace。kubernetes中的pod就是多个容器共享一个Network namespace。none–net=none
容器有独立的Network namespace,但并没有对其进行任何网络设置,如分配veth pair 和网桥连接,配置IP等。bridge
–net=bridge(默认为该模式)
11、配置dns
可在主机上的/etc/docker/daemon.json文件增加如下内容来设置全部容器的DNS
{
"dns" : [
"114.114.114.114",
"8.8.8.8"
]
}
设置后,启动容器的 DNS 会自动配置为 114.114.114.114 和 8.8.8.8。配置完,需要重启 docker 才能生效
查看DNS是否生效:
docker run -it 镜像名[:tag] cat etc/resolv.conf
12、实时查看docker占主机cpu和内存信息
docker stats
===============================
我是Liusy,一个喜欢健身的程序员。
获取更多干货以及最新消息,请关注公众号:上古伪神
如果对您有帮助,点个关注就是对我最大的支持!!!
Docker使用指南的更多相关文章
- Docker终极指南:为什么Docker能做这么多事
Docker终极指南:为什么Docker能做这么多事 http://www.aboutyun.com/thread-11499-1-1.html
- Docker 使用指南 (四)—— 数据卷的使用
一.数据卷的使用 有时候需要使用数据库,但是又希望它的数据能保存在本地,Docker中提供了数据卷可以供你方便的操作数据.数据卷是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用 ...
- Docker 入门指南——常用命令
前面已经介绍了 Docker 的安装方式,本文总结一下使用 Docker 的基本概念和常用命令. 基本概念 镜像 Image 镜像是一些打包好的已有的环境,可以被用来启动和创建容器 容器 Contai ...
- [转载]Docker 完全指南
Docker 完全指南 原作者地址: https://wdxtub.com/2017/05/01/docker-guide/ 发表于 2017-05-01 | 更新于 2017-08-03 | ...
- Docker 入门指南
Docker 入门指南 目录 基础概念 安装教程 基本操作 常用安装 构建操作 容器编排 壹.基础概念 什么是Docker? Docker是基于Go开发的应用容器引擎,属于 Linux 容器的一种封装 ...
- 斌哥的 Docker 进阶指南
过去的一年中,关于 Docker 的话题从未断过,而如今,从尝试 Docker 到最终决定使用 Docker 的转化率依然在逐步升高,关于 Docker 的讨论更是有增无减.另一方面,大家的注意力也渐 ...
- docker入门指南(转载)
原文: http://bg.biedalian.com/2014/11/20/docker-start.html 关于 docker 今天云平台的同事提到, 现在的运维就是恶性循环, 因为大家都在申请 ...
- Docker 使用指南 (二)—— 搭建本地仓库
版权声明:本文由田飞雨原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/94 来源:腾云阁 https://www.qclou ...
- Docker 使用指南 (一)—— 基本操作
版权声明:本文由田飞雨原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/98来源:腾云阁 https://www.qcloud ...
- Docker 使用指南 (六)—— 使用 Docker 部署 Django 容器栈
版权声明:本文由田飞雨原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/98 来源:腾云阁 https://www.qclou ...
随机推荐
- Java——break,continue,return语句
break语句: break:用于改变程序控制流 用于do-while.while.for中时,可跳出循环而执行循环后面的语句. break的作用:终止当前循环语句的执行. break还可以用来终止s ...
- K8s 一、(1、容器基本概念 2、k8s基本概念 )
1.容器基本概念 容器其实就是一种特殊的进程,容器是一个 '单进程'模型. Namespace :隔离 Namespace 技术实际上修改了应用进程看待整个计算机"视图",即它的& ...
- Ajax(简介、基础操作、计算器,登录验证)
Ajax简介 Ajax 即"Asynchronous Javascript And XML"(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术. ...
- 绿盟UTS综合威胁探针管理员任意登录
绿盟UTS综合威胁探针管理员任意登录 漏洞详情: 绿盟全流量威胁分析解决方案针对原始流量进行采集和监控,对流量信息进行深度还原.存储.查询和分析,可以及时掌握重要信息系统相关网络安全威胁风险,及时检测 ...
- hadoop知识点总结(一)hadoop架构以及mapreduce工作机制
1,为什么需要hadoop 数据分析者面临的问题 数据日趋庞大,读写都出现性能瓶颈: 用户的应用和分析结果,对实时性和响应时间要求越来越高: 使用的模型越来越复杂,计算量指数级上升. 期待的解决方案 ...
- python flask_sqlalchemy 多态 polymorphic 实现单表继承
sqlalchemy 多态 polymorphic 实现单表继承 sqlaclchemy中的单表继续就是以一个模型类为基类,其他模型类继承基类,所有模型类的的数据都存一张表里面(也可以是多张,只不过基 ...
- LINUX中备份mysql数据库
1.在LINUX中创建备份目录 如:/home/backup 2.把sh脚本放到备份目录下 脚本如下 https://wws.lanzous.com/i1oCxlccapa密码:dter ...
- Jenkins(6)测试报告邮件发送
前言 前面已经实现在jenkins上展示html的测试报告,接下来只差最后一步,把报告发给你的领导,展示你的劳动成果了. 安装 Email Extension Plugin 插件 jenkins首页- ...
- spark提交命令 spark-submit 的参数 executor-memory、executor-cores、num-executors、spark.default.parallelism分析
转载:https://blog.csdn.net/zimiao552147572/article/details/96482120 nohup spark-submit --master yarn - ...
- 小希的迷宫B - B
上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了 ...