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

Docker基础

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

零、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学习笔记(五)-tmpfs和xfs

Centos7学习笔记(五)-tmpfs和xfs

介绍/dev/shm/是一个使用就是tmpfs文件系统的设备,其实就是一个特殊的文件系统。redhat中默认大小为物理内存的一半,使用时不用mkfs格式化。tmpfs是Linux/Unix系统上的一种基于内存的虚拟文件系统。tmpfs可以使用您的内存或swap分区来存储文件(即它的存储空间在virtual memory 中, VM由real memory和swap组成)。由此可见,tmpfs主要存储暂存的文件。它有如下2个优势 : 1. 动态文件系统的大小。2. tmpfs 使用VM建的文件系统...

Centos7学习笔记(六)——shell编程初步

Centos7学习笔记(六)——shell编程初步

1、shell编程的一些基础a)shell编程有两类变量,                             全局变量(环境变量)——  一般指系统内置的变量,或者手动用export、declare等方式宣称,写入/etc/profile(~./bash_profile、~/bashrc、/etc/bashrc)的全局变量 ...

Centos7学习笔记(二十三)- nginx的keepalived高可用

Centos7学习笔记(二十三)- nginx的keepalived高可用

一、什么是keepalivedkeepalived最初是为LVS设计的,用于管理并监控LVS集群中各个服务节点的状态,后来又加入了可用实现高可用的VRRP协议支持。VRRP是Virtual Router RedundancyProtocol(虚拟路由器冗余协议)的缩写,VRRP出现的目的就是为了解决静态路由单点故障问题的,它能够保证当个别节点宕机时,整个网络可以不间断地运行。这里的VRRP协议,就是纯粹的网络中使用的VRRP协议。二、keepalived工作原理这里说“keepalived工作原...

CentOS 7 系统优化脚本

CentOS 7 系统优化脚本

以下引用自网上内容:#!/bin/sh. /etc/rc.d/init.d/functionsexport LANG=zh_CN.UTF-8#一级菜单menu1(){        clear        cat <<eof------------------------------------...

Centos7学习笔记(二十一)- nginx的rewrite

Centos7学习笔记(二十一)- nginx的rewrite

一、什么是rewriterewirte就是实现Url地址重写,以及重定向,就是把传入的web请求重定向到其他URL的过程。二、rewrite的使用场景a、url地址的跳转。比如访问www.example.com/test,重定向到test.example.com网址。b、协议的跳转,主要的就是实现http协议跳转到https页面去。c、实现网站的伪静态。伪静态就是将网站动态页面的诸多参数,显示为一种静态页面的方式,以便于搜索引擎记录,减少URL地址暴露过多参数,提高安全性。d、通过上述伪静态,产...

phpldapadmin之config.php过滤

phpldapadmin之config.php过滤

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

发表评论

访客

看不清,换一张

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