Docker自制镜像之私有云平台完整版

简介: 一、Docker安装Docker之安装篇二、Docker操作搜索中央仓库可用镜像$ docker search centos2.1【镜像操作命令】2.

一、Docker安装

Docker之安装篇

二、Docker操作

搜索中央仓库可用镜像

$ docker search centos

2.1【镜像操作命令】

2.1.1 查看所有镜像docker images删除所有镜像

$ docker rmi $(docker images -q)

2.1.2 删除没有使用的镜像

docker rmi -f $(docker images | grep "" | awk "{print \$3}")

2.2【容器操作命令】

2.2.1 查看所有容器(包括未运行)

$ docker ps -a

2.2.2 删除所有未运行容器(https://www.jb51.net/article/111073.htm)

$ docker rm $(docker ps -a -q)

2.2.3 删除停止的容器

$ docker rm $(docker ps --all -q -f status=exited)

2.2.4 创建容器(暂不推荐)

$ docker create --name=wang-base-node [增加可选参数]

2.2.5 创建并启动容器(推荐,注:显示指定--network=host 代替默认的 bridge 模式可能性能更好,--privileged表示以超级权限启动,-d表示以后台启动,-v表示共享挂载宿主机与容器目录(宿主机目录:容器目录)可以写多个 如:-v /opt/apps:/opt/apps -v /mnt/disk1:/mnt/disk1表示分别挂载两个目录,重要:这里以/usr/sbin/init作为入口启动的好处是避免在centos7下默认sshd/systemctl/d-bus等服务不会自启动的问题)

$ docker run -tid -v /mnt/disk1:/mnt/disk1 --privileged --name=wang-base-node --hostname=wang-base-node --network=bridge wang-centos7-base /usr/sbin/init [其他可选参数]

或增加端口映射的语法(宿主机代理端口:容器端口,注:仅在--network=bridge模式下有效):

$ docker run -tid -p 58081:8081 -v /opt/apps:/opt/apps --privileged --name=wang-base-node --hostname=wang-base-node --network=bridge wang-centos7-base /usr/sbin/init

2.2.6 后台启动容器

$ docker start [containerID]

2.2.7 进入某个容器

$ docker exec -it [containerID] bash

2.3【自制镜像的导入和导出】

2.3.1 保存容器

$ docker commit [containerID] wang-centos7-base

2.3.2 导出镜像到本地文件

$ docker export [containerID] > wang-centos7-base.tar

2.3.3 导入本地镜像(:latest表示指定tag 可选)

$ docker import - wang-centos7-base:latest < wang-centos7-base.tar

2.3.4 宿主机与容器文件拷贝

$ docker cp [OPTIONS] srcPath containerID:destPath

$ docker cp [OPTIONS] containerID:srcPath destPath


2.4【Docker CentOS7 安装SSH】

2.4.1 安装passwd,openssl,openssh-server

$ yum install passwd openssl openssh-server -y

启动sshd:

[root@wang-centos7-base /]# /usr/sbin/sshd -D

这时报以下错误:

Could not load host key: /etc/ssh/ssh_host_rsa_key

Could not load host key: /etc/ssh/ssh_host_ecdsa_key

Could not load host key: /etc/ssh/ssh_host_ed25519_key

执行以下命令解决:

[root@wang-centos7-base /]# ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ''

[root@wang-centos7-base /]# ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''

[root@wang-centos7-base /]# ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key  -N ''

然后,修改 /etc/ssh/sshd_config 配置信息:

UsePAM yes 改为 UsePAM no

UsePrivilegeSeparation sandbox 改为 UsePrivilegeSeparation no

[root@wang-centos7-base /]# sed -i "s/#UsePrivilegeSeparation.*/UsePrivilegeSeparation no/g" /etc/ssh/sshd_config

[root@wang-centos7-base /]# sed -i "s/UsePAM.*/UsePAM no/g" /etc/ssh/sshd_config

修改完后,重新启动sshd(注:此启动仅供测试sshd服务是否正常,重新创建容器时可显示指定启动参数,见1.2创建容器)

[root@wang-centos7-base /]# /usr/sbin/sshd -D > /var/log/sshd.log

目录
相关文章
|
18天前
|
应用服务中间件 Linux nginx
Docker镜像-手动制作yum版nginx镜像
这篇文章介绍了如何手动制作一个基于CentOS 7.6的Docker镜像,其中包括下载指定版本的CentOS镜像,创建容器,配置阿里云软件源,安装并配置nginx,自定义nginx日志格式和web页面,最后提交镜像并基于该镜像启动新容器的详细步骤。
79 21
Docker镜像-手动制作yum版nginx镜像
|
18天前
|
应用服务中间件 nginx Docker
Docker镜像-基于DockerFile制作编译版nginx镜像
这篇文章介绍了如何基于Dockerfile制作一个编译版的nginx镜像,并提供了详细的步骤和命令。
94 17
Docker镜像-基于DockerFile制作编译版nginx镜像
|
18天前
|
应用服务中间件 Linux nginx
Docker镜像管理篇
关于Docker镜像管理的教程,涵盖了Docker镜像的基本概念、管理命令以及如何制作Docker镜像等内容。
89 7
Docker镜像管理篇
|
18天前
|
应用服务中间件 Linux nginx
Docker镜像-基于DockerFile制作yum版nginx镜像
本文介绍了如何使用Dockerfile制作一个基于CentOS 7.6.1810的yum版nginx镜像,并提供了详细的步骤和命令。
60 20
|
18天前
|
Docker 容器
Docker Hub镜像公共仓库使用
这篇文章介绍了如何使用Docker Hub公共仓库进行镜像的创建、上传、下载和管理。
308 8
|
23天前
|
物联网 Serverless API
函数计算产品使用问题之怎么部署Docker镜像进行lora训练
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
23天前
|
运维 前端开发 API
实战 web 应用 Docker 镜像解耦交付
实战 web 应用 Docker 镜像解耦交付
|
机器学习/深度学习 人工智能 监控
【云栖计算之旅】第2期精彩回顾:Docker在云平台上的最佳实践
12月9日下午,云栖计算之旅线下沙龙第2期《Docker在云平台上的最佳实践》专场在北京阿里中心望京A座举办,来自各大互联网公司的Docker开发者和运维人员齐聚,会场座无虚席,阿里云容器团队的3位Docker专家进行了分享。本文来回顾一下本次沙龙的精华内容。
3275 0
|
7天前
|
弹性计算 运维 持续交付
探索Docker容器化技术及其在生产环境中的应用
探索Docker容器化技术及其在生产环境中的应用
38 5
|
2天前
|
负载均衡 网络协议 开发者
掌握 Docker 网络:构建复杂的容器通信
在 Docker 容器化环境中,容器间的通信至关重要。本文详细介绍了 Docker 网络的基本概念和类型,包括桥接网络、宿主网络、覆盖网络和 Macvlan 网络等,并提供了创建、管理和配置自定义网络的实用命令。通过掌握这些知识,开发者可以构建更健壮和灵活的容器化应用,提高应用的可扩展性和安全性。