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

目录
相关文章
|
6月前
|
Docker 容器 Perl
云效flow构建docker镜像更换apt源为阿里镜像源
在 Dockerfile 中添加命令以更换 Debian 源为阿里云镜像,加速容器内软件包下载。核心命令通过 `sed` 实现源地址替换,并更新 apt 软件源。其中 `cat` 命令用于验证替换是否成功,实际使用中可删除该行。
1235 32
|
5月前
|
缓存 Shell 网络安全
将应用程序打包成Docker镜像时可能遇到哪些问题?
将应用程序打包成Docker镜像时可能遇到哪些问题?
475 77
|
5月前
|
Shell 应用服务中间件 nginx
docker 镜像的部分常用命令
docker镜像常用命令
171 16
|
5月前
|
关系型数据库 MySQL Docker
|
6月前
|
Ubuntu Linux 网络安全
Ubuntu Docker镜像:支持systemctl、SSH、VNC
总的来说,创建一个支持systemctl、SSH和VNC的Ubuntu Docker镜像需要一些技术知识,但是通过学习和实践,我们可以掌握这些技术。这将使我们能够更有效地使用Docker,更好地管理我们的应用程序和服务。CentOS系统中的日志文件位置和管理
188 17
|
9月前
|
Ubuntu NoSQL Linux
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
499 6
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
|
Shell Linux Docker
docker常用命令大全(基础、镜像、容器、数据卷)
这些命令仅仅是 Docker 命令行工具的冰山一角,但对于日常操作来说已经非常全面。通过熟练地使用这些基础命令,用户可以有效地管理 Docker 的镜像、容器、数据卷和网络。随着用户对 Docker 的深入使用,更高级的命令和选项将会变得必需,但上面列出的命令已经为用户提供了一个坚实的起点。对于初学者来说,理解和掌握这些常用命令是深入学习 Docker 的基础。
786 5
docker常用命令大全(基础、镜像、容器、数据卷)
|
存储 安全 Ubuntu
Docker 镜像与 Docker 容器的区别
【8月更文挑战第27天】
1032 5