上文简单介绍了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使用指南的更多相关文章

  1. Docker终极指南:为什么Docker能做这么多事

    Docker终极指南:为什么Docker能做这么多事 http://www.aboutyun.com/thread-11499-1-1.html

  2. Docker 使用指南 (四)—— 数据卷的使用

    一.数据卷的使用 有时候需要使用数据库,但是又希望它的数据能保存在本地,Docker中提供了数据卷可以供你方便的操作数据.数据卷是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用 ...

  3. Docker 入门指南——常用命令

    前面已经介绍了 Docker 的安装方式,本文总结一下使用 Docker 的基本概念和常用命令. 基本概念 镜像 Image 镜像是一些打包好的已有的环境,可以被用来启动和创建容器 容器 Contai ...

  4. [转载]Docker 完全指南

    Docker 完全指南 原作者地址: https://wdxtub.com/2017/05/01/docker-guide/  发表于 2017-05-01 |  更新于 2017-08-03 |   ...

  5. Docker 入门指南

    Docker 入门指南 目录 基础概念 安装教程 基本操作 常用安装 构建操作 容器编排 壹.基础概念 什么是Docker? Docker是基于Go开发的应用容器引擎,属于 Linux 容器的一种封装 ...

  6. 斌哥的 Docker 进阶指南

    过去的一年中,关于 Docker 的话题从未断过,而如今,从尝试 Docker 到最终决定使用 Docker 的转化率依然在逐步升高,关于 Docker 的讨论更是有增无减.另一方面,大家的注意力也渐 ...

  7. docker入门指南(转载)

    原文: http://bg.biedalian.com/2014/11/20/docker-start.html 关于 docker 今天云平台的同事提到, 现在的运维就是恶性循环, 因为大家都在申请 ...

  8. Docker 使用指南 (二)—— 搭建本地仓库

    版权声明:本文由田飞雨原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/94 来源:腾云阁 https://www.qclou ...

  9. Docker 使用指南 (一)—— 基本操作

    版权声明:本文由田飞雨原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/98来源:腾云阁 https://www.qcloud ...

  10. Docker 使用指南 (六)—— 使用 Docker 部署 Django 容器栈

    版权声明:本文由田飞雨原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/98 来源:腾云阁 https://www.qclou ...

随机推荐

  1. docker镜像加速,docker更换为国内镜像

    docker镜像加速,docker更换为国内镜像 一.使用官方镜像 二.Docker守护进程配置加速器 相关博文原文地址: CSDN:让我思考一下 :docker更换为国内镜像 一.使用官方镜像 Do ...

  2. Microsoft Exchange远程代码执行漏洞(CVE-2020-16875)

    Microsoft Exchange远程代码执行漏洞(CVE-2020-16875) 漏洞信息: 由于对cmdlet参数的验证不正确,Microsoft Exchange服务器中存在一个远程执行代码漏 ...

  3. python模块----optparse模块、argparse模块 (命令行解析模块)

    简介 optparse module---自版本3.2以来已弃用:optparse模块已弃用,将不再进一步开发:将继续使用argparse模块进行开发.optparse使用一种更具声明性的命令行解析方 ...

  4. 读取本地文本写入list

    /** * 读取15151433862----123456文档 * @param f */ private static void findContent(File f){ String line = ...

  5. Cisco的互联网络操作系统IOS和安全设备管理器SDM__CDP

    1.CDP定时器和保持信息时间:通过show cdp 命令查看 show cdp neighbors命令提供下列信息:device ID(设备ID).local interface(本地接口).hol ...

  6. Cisco的互联网络操作系统IOS和安全设备管理器SDM__散知识点1

    1.启动路由器:当你初次启动一台Cisco路由器时,它将运行开机自检(POST)过程.如果通过了,它将从闪存中查找Cisco IOS,如果有IOS文件存在,则执行装载操作(闪存是一个可电子擦写.可编程 ...

  7. (9)Linux的哲学思想及文件概念

    一.Linux的哲学思想 1. 一切皆文件 把几乎所有资源统统抽象为文件形式,包括硬件设备,甚至通信接口等,便于统一管理和定义: 对文件的操作有:open,read,write,close,delet ...

  8. dedecms新建内容模型以及如何添加字段

    dedecms新建内容模型以及如何添加字段 内容模型就是我们所说的频道模型,利用频道模型可以实现其使用他的栏目具备一些功能,比如说,图片模型,在使用他的栏目中就可以发表多个图片,并且能够达到相册的功能 ...

  9. docker第一日学习总结

    查看当前所有的镜像 docker images 查看当前运行的容器 docker ps 一般容器分为后台驻留和闪退(ubuntu\busybox等)两种,对于后台驻留的,我们如果想进入这个容器(前提是 ...

  10. SDNUOJ1016矩形合并

    传送门 题意: 给出n个矩形,把重合的矩形归成一个图形,问合并以后剩下几个图形 思路: 我开始想用dfs,但是发现不太行. 后来知道才是并查集 Orz 用一个结构体数组存矩形的左下角和右上角的坐标,再 ...