一、docker安装
1、CentOS Docker安装
安装命令如下:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
也可以使用国内 daocloud 一键安装命令:
curl -sSL https://get.daocloud.io/docker | sh
2、其它系统的安装
由于本人使用的CentOS,所以其它系统的安装不再说明,可以参考教程,https://www.runoob.com/docker/centos-docker-install.html
二、docker命令
1、 docker run :创建一个新的容器并运行一个命令,其中IMAGE就是镜像,镜像与容器的关系简单的来说镜像就像是一个没有安装的软件包,一个镜像可以产生多个容器(运行或者创建多次),但是每个容器的名字和Id都不能相同。
语法:docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 实例:docker run -it -d --name mysql -p3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql,执行成功后如下图,会出现mysql的标识符
实例说明:-it 是指定容器以交互模式运行,并且为容器分配一个伪终端,可以在终端中执行mysql的一些命令 --name 是容器名称 -p指定主机端口
OPTIONS说明:
- -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
- -d: 后台运行容器,并返回容器ID;
- -i: 以交互模式运行容器,通常与 -t 同时使用;
- -P: 随机端口映射,容器内部端口 随机映射到主机的端口
- -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
- -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
- –name=”nginx-lb”: 为容器指定一个名称;
- –dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
- –dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
- -h “mars”: 指定容器的hostname;
- -e username=”ritchie”: 设置环境变量;
- –env-file=[]: 从指定文件读入环境变量;
- –cpuset=”0-2″ or –cpuset=”0,1,2″: 绑定容器到指定CPU运行;
- -m :设置容器使用内存最大值;
- –net=”bridge”: 指定容器的网络连接类型,支持 bridge/host/none/container:
- –link=[]: 添加链接到另一个容器;
- –expose=[]: 开放一个端口或一组端口;
- –volume , -v:绑定一个卷
2、 Docker start/stop/restart 命令 :启动/停止/重启容器
实例:docker start mysql
3、 docker kill 杀掉一个运行中的容器。不删除数据
实例:docker kill -s KILL mynginx
OPTIONS说明:-s:指定发送的信号,默认为”KILL”
4、 docker rm删除一个或多个容器。会删除数据
实例:docker rm -f db01 db02 强制删除容器名称为 db01、db02的容器
OPTIONS说明:
- -f :通过 SIGKILL 信号强制删除一个运行中的容器。
- -l :移除容器间的网络连接,而非容器本身。
- -v :删除与容器关联的卷。
5、 docker pause/unpause暂停或者恢复容器中所有进程
实例:docker pause db01 暂停容器 db01中的所有进程
6、 docker create创建一个新的容器但不启动它,语法同 docker run
实例:docker create –name mysqltest mysql :latest 创建mysql容器并且命名为mysqltest
7、 docker exec在运行的容器中执行命令
实例:docker exec -it de4ab36b1b59 bash de4ab36b1b59是容器Id,运行容器,并且分配一个伪终端,接下来就可以输入运行的容器命令,输入exit可退出伪终端
OPTIONS说明:
- -d :分离模式: 在后台运行
- -i :即使没有附加也保持STDIN 打开
- -t :分配一个伪终端
8、 docker inspect获取容器/镜像的元数据。
实例:docker inspect mysql 获取镜像mysql的元信息。 运行结果如下:
OPTIONS说明:
- -f :指定返回值的模板文件。
- -s :显示总的文件大小。
- –type :为指定类型返回JSON。
9、 docker top查看容器中运行的进程信息,支持 ps 命令参数。
实例:for i in docker ps |grep Up|awk '{print $1}'
;do echo \ &&docker top $i ;done 查看所有运行容器的进程信息
实例:docker top mysql-test 查看容器名称 为mysql-test容器的进程信息
10、 docker attach连接到正在运行中的容器
实例:docker attach –sig -proxy =false mynginx 容器mynginx将访问日志指到标准输出,连接到容器查看访问信息。
11、 docker event从服务器获取实时事件
实例:docker events –since =”1467302400″ 查看 2016年7月1日后的所有事件。 –since是指定的时间戳
实例:docker events -f “image”=”mysql”–since =”1467302400″ 显示docker 镜像为mysql 2016年7月1日后的相关事件。
OPTIONS说明:
- -f :根据条件过滤事件;
- –since :从指定的时间戳后显示所有事件;
- –until :流水时间显示到指定的时间为止;
12、 docker logs获取容器的日志
实例:docker logs -f mysql-test 跟踪查看容器mysql 的日志输出。 其中mysql-test是容器名称
OPTIONS说明:
- -f :跟踪日志输出
- –since :显示某个开始时间的所有日志
- -t :显示时间戳
- –tail :仅列出最新N条容器日志
13、 docker wait阻塞运行直到容器停止,然后打印出它的退出代码。
实例:docker wait de4ab36b1b59 de4ab36b1b59是容器Id
14、 docker export 将文件系统作为一个tar归档文件导出到STDOUT。
实例:docker export -o mysql –date +%Y%m%d
.tar de4ab36b1b59
ls mysql –date +%Y%m%d
.tar 列出以mysql-日期.tar文件
mysql -20220622.tar
其中de4ab36b1b59 是容器Id
OPTIONS说明:
-o :将输入内容写到文件。
15、 docker port列出指定的容器的端口映射,或者查找将PRIVATE_PORT NAT到面向公众的端口。
实例:docker port mysql-test 查看容器名为mysql-test的端口映射情况。
Original: https://www.cnblogs.com/ithome8/p/16399867.html
Author: IT之家
Title: 笔记-docker学习-1
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/591818/
转载文章受原作者版权保护。转载请注明原作者出处!