当前位置:首页 > 技术文章 > 正文内容

Docker基础

ivker_lee4年前 (2021-12-28)技术文章329

零、Docker软件

1、docker本质上是C/S架构的,其软件版本分docker-ce(社区版)、docker-ee(企业版)

2、docker镜像是分层构建,docker registry中,含有若干个repository(镜像的仓库),每个repository含有若干镜像,每个镜像用tag(标签)区分,意味着每个tag代表一个镜像。不指定tag的话,默认tag是latest

3、docker的主配置文件是/etc/docker/deamon.json。配置docker镜像加速下载,示例文件:

{
    "registry-mirrors": ["https://kfwkfulq.mirror.aliyuncs.com","https://2lqq34jg.mirror.aliyuncs.com","https://pee6w651.mirror.aliyuncs.com","https://registry.docker-cn.com","http://hub-mirror.c.163.com"],
    "dns": ["8.8.8.8","8.8.4.4"]
}

4、docker version,查看docker版本

docker info,查看docker的更多信息


一、镜像

1、查看镜像

docker images

2、搜索镜像

docker search xxx

3、拉取镜像

docker pull xxx

4、删除镜像

docker rmi  xxx


二、容器

1、启动(新建)容器

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

其中:

[options]常用选项有:

-d——等于“--detach”,让启动的容器在后台持续运行。官方的解释是容器进入”分离模式“,以与前台交互式区别。

-i——等于“--interactive”,交互式运行。

-t——等于“--tty”,附加一个tty终端。

-p——等于“--publish list”,映射容器的端口,一对一映射方式。用法是:“-p   宿主机端口:容器端口

-v——等于“--volume list”,映射目录。用法同“-p",宿主机目录在前,容器目录在后。

--privileged——提权。使用该参数,容器内的root拥有真正的root权限。否则,容器内的root只是外部的一个普通用户权限。privileged启动的容器,可以看到很多host上的设备,并且可以执行mount。甚至允许你在docker容器中启动docker容器。用法:”--privileged=true“。

-P——等于”--publish-all“。区别于”-p“,它是随机映射端口。

-e——等于”--env list“。指定容器内的环境变量。环境变量的值可以是宿主机的某些参数值。

-h——等于”--hostname string“。指定容器的主机名。

-u——等于”--user string“。指定容器使用的宿主机用户或者UID。用法格式:<name|uid>[:<group|gid>]

[ user | user:group | uid | uid:gid | user:gid | uid:group ]

--name——给启动的容器指定一个名字,用法“--name=xxxx”


2、查看容器

docker ps [OPTIONS]

docker container ls

常用的[options]有:

-q——静默式显示输出

-a——显示所有容器


3、停止和启动(已创建)容器

停止:docker stop [OPTIONS] CONTAINER [CONTAINER...]

启动:docker start [OPTIONS] CONTAINER [CONTAINER...]

其中,CONTAINER都可以是容器指定的名字,或者容器ID。


4、容器的文件拷贝

用法:docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH

docker cp [OPTIONS] SRC_PATH  CONTAINER:DEST_PATH

Options:

  -a, --archive       Archive mode (copy all uid/gid information)压缩模式

  -L, --follow-link   Always follow symbol link in SRC_PATH


5、查看容器的信息

可以查看容器的IP地址

docker inspect [OPTIONS] NAME|ID [NAME|ID...]


6、删除容器

docker rm [OPTIONS] CONTAINER [CONTAINER...]

常用参数:

-f——强制删除

ubuntu下,将正常停止的容器删除。

sudo docker rm  $(sudo docker ps -a |grep 'Exited'|cut -d " " -f1)


7、查看容器应用程序日志

docker  logs [OPTIONS]container_name


8、进入容器查看程序运行状况

docker  exec [OPTIONS] container_name  COMMAND [ARG...]

例如:docker exec -it redis1 /bin/sh



三、镜像的定制和推送

1、注册dockerhub——比如叫lmydocker

2、将运行中的,自己修改定制过的容器,commit提交成镜像

docker commit  -a="ivker_lee"  -m="this is first push."  


二、打包镜像和推送上传

1、注册dockerhub账号。

2、将定制修改过的容器,用docker commit打包成镜像。这里是本地镜像。格式如下:

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

参数有:-a——定义作者

-m——定义comment内容

实例: sudo docker commit 8b131d6cd7c6  ivker_lee/jd_cookie:1.0

3、将镜像tag标记。

docker tag 本地仓库/镜像名:tag标记号   dockerhub仓库/镜像名:tag标记号

实例:docker tag ivker_lee/jd_cookie:1.0 lvkerdocker/jd_cookie:1.0

           docker images
REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
ivker_lee/jd_cookie     1.0                 cf9bd34d690b        27 minutes ago      41.3MB
lvkerdocker/jd_cookie   1.0                 cf9bd34d690b        27 minutes ago      41.3MB
redis                   latest              7614ae9453d1        3 weeks ago         113MB
nginx                   latest              f6987c8d6ed5        3 weeks ago         141MB
scjtqs/jd_cookie        latest              b4c530736dec        3 weeks ago         41.3MB

4、推送上传

docker push dockerhub仓库/镜像名:tag标记号

实例:docker push lvkerdocker/jd_cookie


四、dockerfile详解

通过dockerfile创建镜像

1、写dockerfile

2、docker build -f 绝对路径/dockerfile文件名   -t  给镜像打标识   存储路径

分享给朋友:

相关文章

Centos7学习笔记(四)——grep、sed、awk

Centos7学习笔记(四)——grep、sed、awk

1、grep——print lines matching a pattern打印匹配内容的行(多行)命令格式:grep [参数] 过滤匹配内容 [文件名]或者grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]常用参数:-v 取反过滤 ◆◆-i 忽略大小写  ◆◆(find 命令可以用-iname)-n 对过滤后的内容,显示源文件行号  ◆◆-w 按单词为单位过滤。◆◆-o只输出匹配的内容。◆◆-E使用扩展规则-r...

phpldapadmin之config.php过滤

phpldapadmin之config.php过滤

完全过滤掉/*--------*/"和空行,以及”//“开头、”#“开头的行,sed  -e '/\/\*/,/\*\//d' config.php|grep -Ev "(^$)|(^(\/\/))|(^#)"sed  -e '/\/\*/,/\*\//d' -e '/^\/\//d' -e ...

Centos7学习笔记(九)- 基础系统优化

Centos7学习笔记(九)- 基础系统优化

本部分内容是针对运维管理过程中,为了达到规范、便捷、增强基础安全性等目的,而对初始安装的生产(也包括测试)用操作系统,做各项系统优化、规范工作。(持续更新。。。)1、做好服务器的用途规划(含IP规划)和磁盘目录(比如一般备份用的服务器,独立建立/data目录)2、如有必要,尽量做本地hosts解析;或者搭建本地dns解析服务器,所有非dns服务器dns指向该服务器。3、分组各服务器,各组指定更改yum源为不同的公网yum源(比如阿里源、163源、清华源等),如有可能,自行搭建yum源服务器,所有...

Centos7学习笔记(十)- rsync服务器搭建

Centos7学习笔记(十)- rsync服务器搭建

1、服务器端yum -y install rsyncsudo vim /etc/rsyncd.conf##全局配置参数## uid = rsync gid = rsync fake super = yes use chroot = no max connections = 200 timeout = 600 #motd fi...

 Centos7学习笔记(十一)- nfs服务器搭建

Centos7学习笔记(十一)- nfs服务器搭建

nfs服务本质上是通过rpc调用提供服务的,所以,其依赖rpcbind程序相关组件运行。而且,rpc服务必须先启动,nfs服务才能正常使用。以下是安装配置:1、服务端a)安装软件yum -y install nfs-utils rpcbind                                    &nb...

 Centos7学习笔记(十三)- 一个解压用脚本的详细说明

Centos7学习笔记(十三)- 一个解压用脚本的详细说明

#!/bin/bash cd /home/tar #ls出该目录下的文件,并导出所需文件名到file.log文件中 ls *.tar.gz >file.log ls *.tgz >>file.log 2>/dev/null ls *.tar.bz2 >>file.log 2>/dev/null #统计file.log到底有多少文件 num=$(cat&...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。