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

Docker基础

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

零、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学习笔记(一)

Centos7学习笔记(一)

1、安装部分新知a、LVM——逻辑卷管理,作用:动态管理磁盘分区空间,缺点:影响高并发下的磁盘性能b、CentOS 7安装之前,修改网卡名称:在安装界面,按“tab”键,调整内核参数,添加“net.ifnames=0 biosdevname=0”这2个参数值(如果是安装好系统后修改,则需几步:1、重命名/etc/sysconfig/network-script/ifcfg-ens33为ifcfg-eth0,并修改内容将DEVICE和NAME值修改为eth0;2、修改/etc/default/gr...

CentOS8系统优化脚本

CentOS8系统优化脚本

网上看到的一个CentOS8的系统优化脚本,写的挺好的。抄录一下。https://www.cnblogs.com/zxl1024320609/p/16715018.html color () {         RES_COL=60         MOVE_TO_COL="echo -en&n...

Centos7学习笔记(七)— 性能调优一

Centos7学习笔记(七)— 性能调优一

1、nice,renice  调整进程nice值,让进程使用更多的CPUnice值   #范围,  -20 ~ 19  越小优先级越高 普通用户0-19作用:以什么优先级运行进程 。默认优先级是0语法: nice  -n 优先级数字   命令例:# nice -n -5 vim a.txt   # vim进程以-5级别运行查看:ps -axu | grep a.txt[root@xueg...

 Centos7学习笔记(十七)- iptable防火墙

Centos7学习笔记(十七)- iptable防火墙

本文大部分内容摘录自https://www.cnblogs.com/f-ck-need-u/p/7397146.html1、syn flood攻击查看在linux系统中,可以用以下命令查看是否遭受syn flood攻击。netstat -tnlpa | grep tcp | awk '{print $6}' | sort | uniq -c2、防火墙数...

Linux新学

Linux新学

[TOC]基础命令find与lsls1 .只显示目录ls -F | grep "/$"-F 文件类型(File type)。在每一个列举项目之后添加一个符号。这些符号包括: / 表明是一个目录; @ 表明是到其它文件的符号链接; * 表明是一个可执行文件ls -al | grep "^d"2.只显示文件ls -al | grep &quo...

Centos7学习笔记(二十)- nginx代理与负载均衡

Centos7学习笔记(二十)- nginx代理与负载均衡

一、代理类型正向代理:-----------为访问客户端服务,dns解析,是在代理端。如科学上网。反向代理:------------为服务器回应请求服务,dns解析,是在客户端本地完成。如多域名反代指向同一IP地址。二、nginx代理支持的协议http--------代理超文本传输协议   -----------http serverhttps--------代理http/https协议 ------------https servertcp -----------代理tcp...

发表评论

访客

看不清,换一张

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