容器技术入门1:Docker镜像管理快速入门

简介: 参加冬季实战营第四期:零基础容器技术实战。参加学习一下,教程很好,做笔记记录一下

1. 搭建Docker服务

Docker 是一个开源的容器引擎,用于创建、管理和编排容器,可以轻松为任何应用创建一个轻量级、可移植、自给自足的容器。本步骤将在服务器上部署一个Docker服务,并配置DockerHub的镜像加速器。

1. 输入以下命令,安装Docker的依赖库。


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

2. 添加Docker CE的软件源信息。

 

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

3. 安装Docker CE。

 

yum makecache fast && yum -y install docker-ce


4. 启动Docker服务。

 

systemctl start docker


5. 配置DockerHub镜像加速器。

 

tee /etc/docker/daemon.json <<-'EOF'

{

 "registry-mirrors": ["https://registry.docker-cn.com"]

}

EOF


6. 重启Docker服务。

 

systemctl restart docker

 

 

2. 编写Dockerfile

本步骤操作将在工作空间下创建一个基于Golang的HelloWorld代码文件和一个用来构建运行Hello代码所需环境镜像的Dockerfile文件

1. 创建工作空间。


mkdir -p /tmp/demo && cd /tmp/demo


2. 在工作空间下创建HelloWorld代码文件,用来在容器环境中监听HTTP服务,输出HelloWorld字符串。  


cat > /tmp/demo/main.go << EOF

package main

 

import (

       "fmt"

       "net/http"

)

 

func main() {

       http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {

               fmt.Fprintf(w, "Hello! World\n")

       })

 

       fmt.Println("start to serve...")

       http.ListenAndServe(":80", nil)

}

EOF


3. 在工作空间下创建Dockerfile文件。


cat > /tmp/demo/Dockerfile << EOF FROM golang:1.12-alpine # change current working dir WORKDIR /go/src/app # copy main.go into /go/src/app COPY . . # go build and install the app RUN go install -v ./... # run the app by default CMD ["app"] EOF

 

3. 本地构建镜像并运行镜像

本步骤将指导您使用Docker基本命令构建和运行镜

1. 使用docker build命令构建镜像。


docker build . -t demo:v1

命令运行结果如下所示:

 

image.png

 

说明:

  • 1.参数.表示指定当前路径作为构建上下文,即Dockerfile所在的本地路径。
  • 2.参数-t demo:v1指定镜像名称和标签。


2. 使用docker run命令运行镜像。


docker run -d -p 8000:80 demo:v1

 

命令运行结果如下所示:

image.png

 

说明:

  • 1.参数-d设置容器运行模式为后台运行。
  • 2. 参数-p 8000:80将容器内部使用的网络端口映射到主机上,其中8000为主机端口,80为容器内部使用端口。


3. 使用curl工具访问容器中的HelloWorld服务。


curl localhost:8000

 

命令运行结果如下所示:

image.png

4. 使用docker rm命令删除容器。

 

docker rm -f $(docker ps -a | grep "demo:v1" | awk '{print $1}')

命令运行结果如下所示:

 image.png


4. 远程镜像仓库操作

1. 推送镜像

本步骤操作将本地镜像推送到远程仓库中,并运行远程仓库中的指定版本镜像。

1.执行以下命令登录到Docker Registry。

 

docker login --username="用户名" registry.cn-hangzhou.aliyuncs.com

 

2. 标记本地镜像,将其归入远程仓库。

 

docker tag demo:v1 registry.cn-hangzhou.aliyuncs.com/space_test/demo:v1

 

3. 将本地镜像推送到远程仓库。

 

docker push registry.cn-hangzhou.aliyuncs.com/space_test/demo:v1

 

命令运行结果如下所示:

 image.png 

4. 拉取指定版本的远程镜像。


docker pull registry.cn-hangzhou.aliyuncs.com/space_test/demo:v1

 

命令运行结果如下所示:

 image.png 

5. 运行拉取的远程镜像。


docker run -d -p 8000:80 registry.cn-hangzhou.aliyuncs.com/space_test/demo:v1

 

命令运行结果如下所示:

 

image.png

 


 



目录
相关文章
|
6月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
723 8
|
6月前
|
监控 Linux 调度
【赵渝强老师】Docker容器的资源管理机制
本文介绍了Linux CGroup技术及其在Docker资源管理中的应用。通过实例演示了如何利用CGroup限制应用程序的CPU、内存和I/O带宽使用,实现系统资源的精细化控制,帮助理解Docker底层资源限制机制。
609 6
|
6月前
|
XML Java 应用服务中间件
【SpringBoot(一)】Spring的认知、容器功能讲解与自动装配原理的入门,带你熟悉Springboot中基本的注解使用
SpringBoot专栏开篇第一章,讲述认识SpringBoot、Bean容器功能的讲解、自动装配原理的入门,还有其他常用的Springboot注解!如果想要了解SpringBoot,那么就进来看看吧!
672 2
|
8月前
|
Kubernetes Docker Python
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
1143 108
|
9月前
|
存储 监控 测试技术
如何将现有的应用程序迁移到Docker容器中?
如何将现有的应用程序迁移到Docker容器中?
671 57
|
6月前
|
监控 Kubernetes 安全
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
蒋星熠Jaxonic,技术探索者,以代码为笔,在二进制星河中书写极客诗篇。专注Docker与容器化实践,分享从入门到企业级应用的深度经验,助力开发者乘风破浪,驶向云原生新世界。
706 51
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
|
9月前
|
存储 监控 Java
如何对迁移到Docker容器中的应用进行性能优化?
如何对迁移到Docker容器中的应用进行性能优化?
564 59