Docker容器学习笔记

Docker容器学习笔记

1.概念

1.1镜像:image

镜像是一个只读的模版,镜像是可以用来制作Docker容器,一个镜像可以制作多个容器。镜像可以比作Java的类,一个类可以有多个实例对象

1.2容器:

容器是镜像创建的运行实例,比作为Java类的实例对象。可以把容器看做是一个简易版的Linux环境,只包括root权限,进程空间,用户和网络空间。

1.3仓库

仓库是集中存放镜像文件的场所,每个不同的镜像都有不同的tag标签

2.Docker安装步骤

2.1.CentOS 7Linux系统安装 Docker

Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

​ 1)通过 uname -r 命令查看你当前的内核版本

2.2.安装之前需要删除旧版本的docker

		$ sudo yum remove docker \
              docker-client \
              docker-client-latest \
              docker-common \
              docker-latest \
              docker-latest-logrotate \
              docker-logrotate \
              docker-selinux \
              docker-engine-selinux \
              docker-engine

2.3.安装一些必要的系统工具

​ 1)sudo yum install -y yum-utils device-mapper-persistent-data lvm2

​ 2)sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

2.4安装Docker

sudo yum -y install docker-ce

2.5.启动 Docker 后台服务

sudo systemctl start docker

2.6.测试运行 hello-world

docker run hello-world

Xnip2020-03-08_16-02-55

2.7查看docker安装镜像

docker images

2.8.docker默认安装目录

/var/lib/docker

3.Docker 镜像加速器阿里云镜像仓库配置

阿里云地址

1.Ubuntu配置

配置镜像加速器
针对Docker客户端版本大于 1.10.0 的用户

您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://0engwp1a.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

2.Mac配置

1. 安装/升级Docker客户端
对于10.10.3以下的用户 推荐使用Docker Toolbox

Mac安装文件:http://mirrors.aliyun.com/docker-toolbox/mac/docker-toolbox/

对于10.10.3以上的用户 推荐使用Docker for Mac

Mac安装文件:http://mirrors.aliyun.com/docker-toolbox/mac/docker-for-mac/

2. 配置镜像加速器
针对安装了Docker Toolbox的用户,您可以参考以下配置步骤:
创建一台安装有Docker环境的Linux虚拟机,指定机器名称为default,同时配置Docker加速器地址。

docker-machine create --engine-registry-mirror=https://0engwp1a.mirror.aliyuncs.com -d virtualbox default
查看机器的环境配置,并配置到本地,并通过Docker客户端访问Docker服务。

docker-machine env default
eval "$(docker-machine env default)"
docker info
针对安装了Docker for Mac的用户,您可以参考以下配置步骤:
在任务栏点击 Docker Desktop 应用图标 -> Perferences,在左侧导航菜单选择 Docker Engine,在右侧输入栏编辑 json 文件。将

https://0engwp1a.mirror.aliyuncs.com加到"registry-mirrors"的数组里,点击 Apply & Restart按钮,等待Docker重启并应用配置的镜像加速器。

3.CentOS

1. 安装/升级Docker客户端
推荐安装1.10.0以上版本的Docker客户端,参考文档 docker-ce

2. 配置镜像加速器
针对Docker客户端版本大于 1.10.0 的用户

您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://wpjk4gpx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

4.Docker工作原理

​ Docker 大鲸鱼运行在宿主机上,镜像在Docker环境中,容器实例来自镜像模版中。

5.Docker使用命令

5.1.帮助命令

docker info:查看基础信息 
docker help:查看docker所以可以使用的命令说明
docker version:查看docker版本信息

5.2.镜像命令

docker images:列出查看本地所以镜像模版
		-a:查询所以本地镜像且包含中间层(如docker images -a)
		-q:查询所以镜像ID
docker search xxx:查看远程仓库对应镜像的版本信息
		-s:如docker search -s 100 nginx 查询starts>=100的nginx镜像模版
docker pull xxx:[tag]:远程仓库拉取xxx标签为tag镜像模版,tag可以省略,表示拉去最新版本的镜像,如docker pull nginx
docker rmi -f xxx:删除xxx镜像模版, -f为强制删除,可以省略,
		删除多个镜像模版:如docker rmi -f nginx tomcat
		全部删除镜像模版:如docker rmi -f $(docker images -qa) 使用组合命令进行全部删除

5.3.容器命令

docker run xxx:启动指定的镜像,如本地docker有该进行则进行运行,没有则进行远程拉取
		-t:启动交互式容器
		-i:使用伪终端的方式
		-d:启动守护容器,如docker run -d -p 8888:8080 tomcat
		-p:端口:如 docker run -it -p 8888(向外暴露的端口):8080(tomcat服务端口) tomcat
		--name:容器别名
		如:docker run -it --name nginx001(容器别名) nginx(运行的镜像名称)
		
exit:退出容器
docker ps:查看docker当前运行容器信息
		-l:显示上一个容器运行的信息,如docker ps -l
		-a:显示docker全部容器运行的信息,如dcoker ps -a
		-n 3:显示docker上3个运行的容器信息,如docker ps -n 3
		-q:只显示容器编号,如docker ps -q 显示当前运行容器编号或者docker ps -lq显示上一个运行的容器编号
docker start xxx(容器编码/名称):启动容器
docker restart xxx(容器编码/名称):重启容器
docker stop xxx(容器编码/名称):停止容器
docker kill xxx(容器编码/名称):强制停止容器
docker rm xxx(容器编码/名称):删除已停止的容器
		-f:强制删除容器, 删除全部容器:docker rm -f ${docker ps -qa}
docker logs -f -t --tail 容器ID:查看docker日志, -t是时间,-f是最新日志da打印 --tail 显示最后多少条数据,如docker logs -f -t --tail 3 容器ID 查看最后三行日志
		
docker inspect 容器ID:查看容器内部所以细节内容
docker attach 容器ID:重新进入指定的开启容器终端
docker exec: 容器正在运行以交互的方式进入容器 docker exec -it zookeeper_zoo1_1 /bin/bash
docker cp 容器ID:  容器copy路径 copy到宿主机的路径:如docker cp xxx: /usr/xxx /usr/local

6.Docker 镜像原理

6.1镜像是什么?

​ 镜像是一种轻量级可执行独立的软件包,里面包含代码,配置文件,环境变量,以及代码运行的环境等。镜像是一层套一层的嵌套。

docker commit 作用提交容器副本使之成为一个新的镜像
docker commit -m="提交的描述" -a"作者" 容器ID 创建目标镜像名称:[标签]

7.docker上传阿里镜像远程仓库

1. 登录阿里云Docker Registry
$ sudo docker login --username=18086456705 registry.cn-hangzhou.aliyuncs.com
用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。

您可以在访问凭证页面修改凭证密码。

2. 从Registry中拉取镜像
$ sudo docker pull registry.cn-hangzhou.aliyuncs.com/xll_2020/xll_2020_demo_j:[镜像版本号]
3. 将镜像推送到Registry
$ sudo docker login --username=18086456705 registry.cn-hangzhou.aliyuncs.com
$ sudo docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/xll_2020/xll_2020_demo_j:[镜像版本号]
$ sudo docker push registry.cn-hangzhou.aliyuncs.com/xll_2020/xll_2020_demo_j:[镜像版本号]
请根据实际镜像信息替换示例中的[ImageId]和[镜像版本号]参数。

4. 选择合适的镜像仓库地址
从ECS推送镜像时,可以选择使用镜像仓库内网地址。推送速度将得到提升并且将不会损耗您的公网流量。

如果您使用的机器位于VPC网络,请使用 registry-vpc.cn-hangzhou.aliyuncs.com 作为Registry的域名登录,并作为镜像命名空间前缀。
5. 示例
使用"docker tag"命令重命名镜像,并将它通过专有网络地址推送至Registry。

$ sudo docker images
REPOSITORY                                                         TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
registry.aliyuncs.com/acs/agent                                    0.7-dfb6816         37bb9c63c8b2        7 days ago          37.89 MB
$ sudo docker tag 37bb9c63c8b2 registry-vpc.cn-hangzhou.aliyuncs.com/acs/agent:0.7-dfb6816
使用"docker images"命令找到镜像,将该镜像名称中的域名部分变更为Registry专有网络地址。

$ sudo docker push registry-vpc.cn-hangzhou.aliyuncs.com/acs/agent:0.7-dfb6816
posted @ 2021-03-04 10:41  A小小高  阅读(126)  评论(0编辑  收藏  举报