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

目录
相关文章
|
8天前
|
缓存 监控 持续交付
|
4天前
|
存储 缓存 Java
Java应用瘦身记:Docker镜像从674MB优化至58MB的实践指南
【10月更文挑战第22天】 在容器化时代,Docker镜像的大小直接影响到应用的部署速度和运行效率。一个轻量级的Docker镜像可以减少存储成本、加快启动时间,并提高资源利用率。本文将分享如何将一个Java基础Docker镜像从674MB缩减到58MB的实践经验。
11 1
|
10天前
|
Docker 容器
docker:记录如何在x86架构上构造和使用arm架构的镜像
为了实现国产化适配,需将原x86平台上的Docker镜像转换为适用于ARM平台的镜像。本文介绍了如何配置Docker buildx环境,包括检查Docker版本、安装buildx插件、启用实验性功能及构建多平台镜像的具体步骤。通过这些操作,可以在x86平台上成功构建并运行ARM64镜像,实现跨平台的应用部署。
53 2
|
14天前
|
网络协议 Docker 容器
docker pull命令拉取镜像失败的解决方案
docker pull命令拉取镜像失败的解决方案
302 0
|
15天前
|
Go Docker Python
docker的python与go镜像的制作
docker的python与go镜像的制作
20 1
|
22天前
|
缓存 安全 Linux
docker镜像管理问题
【10月更文挑战第3天】
69 1
|
22天前
|
NoSQL MongoDB Docker
求助,有没有大神可以找到arm64架构下mongodb的3.6.8版本的docker镜像?
在Docker Hub受限的情况下,寻求适用于ARM架构的docker镜像资源或拉取链接,以便在x86架构上获取;内网中的机器为ARM架构,因此优先请求适合ARM的Docker镜像或Dockerfile,非常感激您的帮助。
|
Linux Docker 容器
突破平台“锁定”痛点,享受 Docker 自由操控
大多数容器平台会把组织“锁定”在某一个系统、某一个云端、某一种应用程序类型、某一种开发环境中,这导致了 CIO 们在不到两年的时间里就纷纷放弃了这条没有出路的死胡同。
2329 0
|
11天前
|
存储 Docker 容器
docker中挂载数据卷到容器
【10月更文挑战第12天】
32 5
|
5天前
|
Web App开发 iOS开发 Docker
Docker 容器的日志
【10月更文挑战第31天】
16 5