Docker配置及使用

1. Docker的基本组成

镜像(image)

镜像就是一个只读的模板,可以通过这个模板创建容器服务,一个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中)

容器(container)

Docker利用容器技术,独立运行的一个或一组应用。容器是用镜像创建的运行实例。
它可以被启用,开始,停止,删除。每个容器都是相互隔离的,保证安全的平台。
可以把容器看作是一个简易版的Linux系统(包括root用户权限,进程空间,用户空间和网络空间等)和运行在其中的应用程序。
容器的定义和镜像几乎一摸一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的

仓库(repository)

仓库是集中存放镜像文件的场所。
仓库和仓库注册服务器(Registry)是有区别的,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签
仓库分为公开仓库(public)和私有仓库(private)两种形式
最大的开放仓库是国外的 Docker Hub,存放了数量庞大的镜像供用户下载。
国内的公开仓库包括阿里云,网易云都有容器服务器(需要配置镜像加速)等

2. 在 Ubuntu 上安装

旧版本的 Docker 被称为docker,docker.io或docker-engine. 如果安装了这些,请卸载它们: 

sudo apt-get remove docker docker-engine docker.io containerd runc

更新系统里的所有的能更新的软件

sudo apt-get update

安装必要工具

sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

增加一个docker的官方GPG key,换成阿里云

#官网
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
#换成阿里云
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

写入软件源信息,换成阿里云

#官方
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
#换成阿里云
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

更新并安装docker-ce

sudo apt-get -y install docker-ce

开启docker服务

systemctl status docker

3.镜像的基本操作

下载镜像

# search作用:
	搜索Docker Hub(镜像仓库)上的镜像
# 命令格式:
	docker search [OPTIONS] TERM
# 命令参数(OPTIONS):
	-f,  --filter filter   	根据提供的格式筛选结果
	     --format string   	利用Go语言的format格式化输出结果
	     --limit int       	展示最大的结果数,默认25个
	     --no-trunc        	内容全部显示
        
 #  命令演示
docker search -f is-offical=true ubuntu
docker search ubuntu

# 拉取下载镜像
docker pull hello-world  # 默认最新版本latest
docker pull hello-world:nanoserver  # 指定版本

查看镜像

# 查看机器上有哪些镜像
# 命令:docker images
# 解释:
 
REPOSITORY  TAG   IMAGE ID   CREATED   SIZE
镜像名字    版本     id号     创建时间   大小

运行镜像

# 命令:
docker run 镜像名字
 
docker run hello-world
 
# 例:
第一个hello-world(没有任何意义)
	docker run hello-world
	1 客户端连到服务端,服务下载了hello-world镜像
    2 通过镜像跑起容器来
    3 容器输出一些东西,通过服务端发送给客户端,客户端展示在窗口里了

删除镜像

# 命令:
docker rmi 镜像名字/Id号
 
# 注意:
1.如果还有基于这个镜像的容器,是不允许删除镜像的
2.可以先删除容器,在删除镜像
	# 查询容器依赖	
	docker ps -a
    # 在删除要不允许的镜像
    docker rm 容器/id

4.容器的基本操作

新建容器并启动

# 新建容器并启动
docker run [可选参数] image

# 参数说明
--name="Name"	 容器名字,用于区分容器
-d				后台方式运行
-it				使用交互方式运行,进入容器查看内容
-p				指定容器端口(小写)
	-p ip:主机端口:容器端口
	-p 主机端口:容器端口(最常用)
	-P 容器端口
	容器端口
-P				随机执行端口(大写)

#测试,启动进入容器
docker run -it centos /bin/bash
#退出容器到主机
exit

列出所有运行的容器

# 列出所有运行的容器
docker ps [可选参数]

# 参数说明
-a		列出当前正在运行以及历史运行过的容器
-n=?	显示最近创建的容器
-q		只显示容器编号

退出容器

# 容器停止并退出
exit

# 容器不停止退出
Ctrl+p+q

删除容器

# 删除指定容器,不能删除正在运行的容器,强制删除用rm -f
docker rm 容器id	

# 删除所有容器
docker rm -f $(docker ps -aq)
docker ps -a -q|xargs docker rm

启动停止容器

docker start 容器id		# 启动容器
docker restart 容器id		# 重启容器
docker stop 容器id		# 停止正在运行的容器
docker kill 容器id		# 强制停止当前容器

进入当前正在运行的容器

# 方式一: 进入容器后开启一个新的终端,可在里面进行操作(常用)
docker exec -it 容器id /bin/bash

# 方式二: 进入容器正在执行的终端,不会启动新的进程
docker attach 容器ID

提交容器成为一个新的镜像

docker commit
docker commit -m="提交的描述信息" -a="作者" 容器id 目标镜像名:[TAG]

#测试
docker commit -a "zxz" -m="commit" e7c2db1336e1 centos2:1.0

容器数据卷

数据卷技术的引入:我们希望Docker容器产生的数据可以自动同步到本地,这样容器删了数据并不会丢失;同时数据也可在容器之间共享。这就是卷技术,也就是目录的挂载,将容器内的目录挂载到linux上

docker run -it -v 主机目录:容器内目录

#测试
docker run -it -v /home/build/Jira_Integrate_Automation/5:/home/ centos2:1.0 /bin/bash

常用其他命令

查看日志

docker logs [可选参数] 容器ID
      --details        显示提供给日志的其他详细信息
  -f, --follow         跟踪日志输出
  -n, --tail string    指定要显示的日志条数 (默认为全部)
  -t, --timestamps     显示时间戳

#测试
docker logs -t -n 10 980daf06de58

查看容器中的进程

# 查看容器中的进程
docker top 容器ID

查看镜像元数据

# 查看镜像元数据
docker inspect 容器ID

从容器内拷贝文件到主机

# 从容器内拷贝文件到主机
docker cp 容器id:容器内路径 目的主机路径

#测试
docker cp 64b40f051756:/home/1.txt /home

自动化shell脚本

Unbuntu

#!/bin/sh

sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get update


sudo apt-get install apt-transport-https -y
sudo apt-get install ca-certificates -y
sudo apt-get install curl -y
sudo apt-get install gnupg-agent -y
sudo apt-get install software-properties-common -y


curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

sudo apt-get -y install docker-ce

systemctl status docker

Centos

#!/bin/sh

sudo yum remove docker docker-engine docker.io containerd runc
sudo yum update


#sudo yum install -y yum-utils 
#sudo yum install -y device-mapper-persistent-data
#sudo yum install -y lvm2

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

sudo yum install -y docker-ce


sudo systemctl start docker

systemctl enable docker

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker 是一种开源的应用容器引擎,它使得开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器或 Windows 上,也可以实现虚拟化,以提高软件的部署效率和一致性。 下面是 Docker 的主要配置使用步骤: 1. 安装 Docker:首先需要在你的系统上安装 Docker。对于 Linux(如 Ubuntu, CentOS)用户,可以使用 apt-get 或 yum 命令安装;对于 macOS 和 Windows 用户,可以从 Docker 的官方网站下载适用于你操作系统的版本。 2. 配置 Docker:启动 Docker 服务并设置环境变量。在 Linux 中可能需要添加用户到 docker 组,而在 Windows 上则需要设置 "Docker Quickstart Terminal" 为默认终端。 3. 查看 Docker 映射和网络:运行 `docker ps` 可以查看正在运行的容器,而 `docker network ls` 和 `docker inspect <container_name>` 可以查看网络配置。 4. 构建镜像:Docker 使用 Dockerfile 来构建镜像,这是一种文本文件,描述了如何从基础镜像开始,安装软件、设置环境变量等。通过 `docker build` 命令来创建镜像。 5. 运行容器使用 `docker run` 命令可以运行一个容器,根据镜像创建一个新的实例。可以指定端口映射、卷挂载等选项。 6. 管理容器使用 `docker stop` 停止容器,`docker rm` 删除容器,`docker images` 查看所有镜像,`docker rmi` 删除镜像。 7. 镜像管理:Docker Hub 是一个公共镜像仓库,你可以从那里拉取镜像,也可以推送自己的镜像到仓库分享给他人。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值