docker简单实战

article/2025/8/27 7:35:59

1.为ubuntu镜像添加ssh服务

1.1查看可用的ubuntu版本

1)访问ubuntu镜像库地址:https://hub.docker.com/search?q=ubuntu&type=imag1e

在这里插入图片描述2)点击第一个ubuntu的官方镜像,选择tag标签,可以选择下载对应的ubuntu镜像
3)找到需要的版本,自行下载

1.2 拉取Ubuntu镜像并查看

[root@localhost harbor]# docker pull ubuntu:16.04 [root@localhost harbor]# docker image ls ubuntu:16.04

1.3 后台运行容器,并配置软件源

[root@localhost harbor]# docker run -itd --name ubuntu ubuntu:16.04 
ce3b1dec5d736a513f126729e8d7a35e3f63e2a40597d13d962bdad9e9c2fe55 
[root@localhost harbor]# docker exec -it ubuntu bash 
root@ce3b1dec5d73:/# whoami 
root 
root@ce3b1dec5d73:/# 
root@ce3b1dec5d73:/# exit 
exit 
官方源下载速度比较慢,可以替换为国内163,aliyun等镜像的源。 
root@0895ad8adf6a:/etc/apt# mv /etc/apt/sources.list /etc/apt/sources.list.bak 
使用echo指令添加sources.list文件内容 
root@175129961b50:/# apt-get update

1.4安装和配置ssh服务

1)更新软件包缓存后可以安装ssh服务,选择主流的openssh-server作为服务端

root@0895ad8adf6a:/etc/apt# apt-get install openssh-server注:如果装包出现如下错误dpkg: error: corrupt info database format file '/var/lib/dpkg/info/format' 
root@7c52e48ca823:~# echo 1 > /var/lib/dpkg/info/format

2)如果需要正常启动ssh服务,则目录/var/run/sshd必须存在

root@175129961b50:/# mkdir -p /var/run/sshd

启动ssh服务,并查看监听状态

root@7c52e48ca823:~# /usr/sbin/sshd -D & 
root@7c52e48ca823:~# apt-get install iproute 
root@7c52e48ca823:~# ss -lntup

3)配置客户端使用秘钥登录
将客户端的公钥(可使用ssh-keygen -t rsa命令生成)复制到容器的authorized_keys文件中

root@7c52e48ca823:~# vim /root/.ssh/authorized_keys

4)创建自动启动ssh服务的可执行文件run.sh,并添加可执行权限

root@7c52e48ca823:~# vim /run.sh 
#!/bin/bash 
/usr/sbin/sshd -D 
root@7c52e48ca823:~# chmod +x /run.sh 
root@7c52e48ca823:~# exit

5)使用ssh连接容器,容器ip地址为172.17.0.2

[root@localhost ~]# ssh 172.17.0.2

6)将容器保存为一个新的sshd:ubuntu镜像并运行

[root@localhost ~]# docker commit ubuntu sshd:ubuntu 
[root@localhost ~]# docker run -it -p 2222:22 -d sshd:ubuntu /run.sh

7)使用ssh连接容器

[root@localhost ~]# ssh 192.168.168.128 -p 2222

2 使用dockerfile创建支持ssh服务的镜像

1)创建工作目录

[root@localhost ~]# mkdir sshd_ubuntu 
[root@localhost ~]# cd sshd_ubuntu/
[root@localhost sshd_ubuntu]# touch dockerfile run.sh sources.list 
[root@localhost sshd_ubuntu]# vim run.sh 
#!/bin/bash 
/usr/sbin/sshd -D 
[root@localhost sshd_ubuntu]# ssh-keygen -t rsa 
[root@localhost sshd_ubuntu]# cat /root/.ssh/id_rsa.pub > authorized_keys 
[root@localhost sshd_ubuntu]# vim sources.list
deb http://mirrors.163.com/ubuntu/ xenial main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ xenial-security main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ xenial-updates main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ xenial-proposed main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ xenial-backports main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ xenial main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ xenial-security main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ xenial-updates main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ xenial-proposed main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ xenial-backports main restricted universe multiverse[root@localhost sshd_ubuntu]# vim dockerfile 
FROM ubuntu:16.04 
MAINTAINER docker_user 
RUN echo 1 > /var/lib/dpkg/info/format 
ADD sources.list /etc/apt/sources.list 
RUN apt-get update 
RUN apt-get install -y openssh-server 
RUN mkdir -p /var/run/sshd 
RUN mkdir -p /root/.ssh 
ADD authorized_keys /root/.ssh/authorized_keys 
ADD run.sh /run.sh 
RUN chmod 755 /run.sh 
EXPOSE 22 
CMD ["/run.sh"] 
精简dockerfile: 
FROM ubuntu:16.04 
MAINTAINER docker_user 
ADD sources.list /etc/apt/sources.list 
ADD run.sh /run.sh 
RUN echo 1 > /var/lib/dpkg/info/format && apt-get update && apt-get install -y openssh-server && mkdir -p /var/run/sshd /root/.ssh && chmod 755 /run.sh ADD authorized_keys /root/.ssh/authorized_keys EXPOSE 22 
CMD ["/run.sh"][root@localhost sshd_ubuntu]# docker build -t sshd:dockerfile .[root@localhost sshd_ubuntu]# docker ps
[root@localhost sshd_ubuntu]# docker run -d -p 2223:22 sshd:dockerfile 
[root@localhost sshd_ubuntu]# ssh 192.168.168.128 -p 2223

3 docker安装nginx

3.1 查看可用的nginx版本

访问nginx镜像库地址:https://hub.docker.com/_/nginx?tab=tags
点击第一个nginx的官方镜像,选择tag标签,可以选择下载对应的镜像:

在这里插入图片描述
也可以使用如下指令查看可用版本:

[root@localhost ~]# docker search nginx

3.2 拉取nginx镜像并查看

[root@localhost harbor]# docker pull nginx[root@localhost harbor]# docker image ls nginx

3.3 后台运行容器

[root@localhost html]#docker run -d --name nginx -p 80:80 -v /html:/usr/share/nginx/html:ro nginx

通过浏览器访问宿主机的8080端口可看到nginx的欢迎界面信息

[root@localhost html]# echo hello > /html/index.html 
[root@localhost html]# curl localhost:80 
hello

4 docker安装mysql

4.1 查看可用的版本

访问mysql镜像库地址:https://hub.docker.com/_/mysql?tab=tags
点击第一个官方镜像,选择tag标签,可以选择下载对应的镜像:
在这里插入图片描述

4.2 拉取镜像并查看

[root@localhost harbor]# docker pull mysql:latest 
[root@localhost harbor]# docker image ls mysql

4.3后台运行容器,并使用exec进入容器

[root@localhost harbor]# docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 mysql[root@localhost harbor]# docker ps[root@localhost harbor]# docker exec -it mysql bash 
root@908813503e41:/# mysql -uroot -p1234

5 docker安装tomcat

5.1 查看可用的版本

访问tomcat镜像库地址:https://hub.docker.com/search?q=tomcat&type=image

5.2 拉取镜像并查看

[root@localhost harbor]# docker pull tomcat 
[root@localhost harbor]# docker image ls tomcat
[root@localhost harbor]# mkdir /usr/local/tomcat 
[root@localhost harbor]# ll /usr/local/tomcat/ 
total 0 
[root@localhost harbor]# docker run -itd --name tomcat -v /usr/local/tomcat:/usr/local/tomcat/webapps -p 8000:8080 tomcat
[root@localhost harbor]# docker exec -it tomcat bash root@2e2e0f7b2b9e:/usr/local/tomcat# ls -l /usr/local/tomcat/webapps total 0 
root@2e2e0f7b2b9e:/usr/local/tomcat# cp -r webapps.dist/* webapps 
root@2e2e0f7b2b9e:/usr/local/tomcat# exit

在这里插入图片描述

6 docker安装php

6.1 查看可用的版本

访问php镜像库地址:https://hub.docker.com/_/php?tab=tags

6.2 拉取镜像并查看

[root@localhost harbor]# docker pull php:5.6-fpm 
[root@localhost harbor]# docker image ls php

6.3 后台运行容器,并使用exec进入容器

[root@localhost harbor]# mkdir /nginx/www -p 
[root@localhost harbor]# docker run --name php-fpm -v /nginx/www/:/www -d php:5.6-fpm[root@localhost harbor]# mkdir /nginx/conf/conf.d -p 
[root@localhost harbor]# cat /nginx/conf/conf.d/php.conf
server {listen 80;server_name localhost; location / { root /usr/share/nginx/html; index index.html index.htm index.php;}error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html;}location ~ \.php$ { fastcgi_pass php:9000;fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name; include fastcgi_params; } }
[root@localhost harbor]# docker run --name nginx -p 8083:80 -d -v /nginx/conf/conf.d/:/etc/nginx/conf.d:ro -v /nginx/www/:/usr/share/nginx/html:ro --link php-fpm:php nginx

–link myphp-fpm:php: 把 php-fpm 的网络并入 nginx,通过修改nginx容器的 /etc/hosts,让 nginx 通过 php:9000 访问 php-fpm。
-v /nginx/www/:/usr/share/nginx/html:ro:如果不指定nginx首页的文件,则会访问nginx的默认 html文件,访问php则需要使用http://192.168.168.139:8083/index.php此种方式

[root@localhost www]# echo hello > /nginx/www/index.html 
[root@localhost www]# curl 192.168.168.128:8083 hello

http://chatgpt.dhexx.cn/article/pamuXwYg.shtml

相关文章

Docker入门与进阶(基础+实战+进阶+Compose+Swarm)超详细版

Docker入门与进阶(基础实战进阶) 一、Docker入门1.1 Docker 概述1.2 Docker 安装、配置、卸载1.3 Docker 使用流程1.4 Docker 访问原理1.5 Docker 常用命令1.5.1 基础命令1.5.2 镜像命令1.5.3 容器命令1.5.4 其他常用命令1.5.5 镜像导出、导入 1.6 制作D…

Docker 入门到实战教程(三)镜像和容器

上一篇文章介绍到Docker的安装,那我们就来验证下 验证安装结果 docker run --rm hello-world输入以下的内容代表安装成功 file 下面开始镜像和容器操作 一. 镜像操作 Docker完美融合Linux,所以Docker命令行的风格和Linux还是比较接近的,相对来说比较容…

Docker入门实战大全终极版

Docker入门 学习推荐 哔哩哔哩 狂神说java 本文主要学习大纲 Docker组成 Docker基本操作 Docker安装卸载Docker阿里云镜像加速Docker run 运行流程图底层原理 Docker的常用命令 帮助命令镜像命令 docker images 查看所有本地的主机上的镜像docker search 搜索镜像docker pull…

Docker入门实战看这篇就够了(最新详细以及踩过的坑)

Docker入门实战看这篇就够了 前言初识是什么容器与虚拟机 能干什么去哪玩 安装先决条件查看自己的内核 安装所需的软件包(支持devicemapper存储类型)设置镜像的仓库设置yum源安装docker启动docker测试配置自己的阿里云镜像加速(强烈推荐)注册登录阿里云开发平台进入控制台选择容…

Docker 基础实战教程:入门

Docker 基础实战教程:入门 前言Hello Docker !Docker使用的基本过程Docker使用基本实例 拉取镜像获取镜像docker pull命令背后的工作docker pull的两个基本实例设置镜像加速器 导入导出容器docker export和docker save的区别 前言 Docker是一个操作系统级的虚拟化技…

Docker 入门到实战教程(十三)Docker Compose

文章目录 一. Docker Compose 概述与使用二. 安装 Docker Compose三. 使用Docker Compose四. 更新Docker Compose五. 更新应用程序测试 一. Docker Compose 概述与使用 1.1 概述 Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排,定义和运行多容器D…

我的Docker学习笔记:从入门到实战过程全记录

文章目录 1 和Docker相关的概念1.1 虚拟机和容器1.2 容器、镜像和Docker1.3 Docker和k8s 2 Docker的安装2.1 在ubuntu中安装2.2 在Win10中安装2.3 Hello world 3 Docker镜像的使用3.1 列出本地所有镜像3.2 从镜像库中查找镜像3.3 下载新的镜像 4 Docker容器的使用4.1 启动容器4…

Docker入门与实战讲解

简述 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPh…

Docker 入门到实战教程(一)介绍Docker

一. Docker简介 1.1 什么是虚拟化? 在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来&#xff0…

Docker——入门实战

I. Docker 简介 Docker是一种新兴的虚拟化技术,能够一定程度上的代替传统虚拟机。不过,Docker 跟传统的虚拟化方式相比具有众多的优势。我也将Docker类比于Python虚拟环境,可以有效的配置各个版本的开发环境,比如深度学习与Java…

Docker超详细教程——入门篇+实战

Docker详细教程——入门篇 官方地址docker概念相关概念docker底层操作流程docker好处为什么比虚拟机快 docker常用命令概览 docker安装本教程环境安装步骤解决提示找不到软件包:添加阿里云镜像 镜像镜像底层原理镜像命令官方地址镜像命令搜索镜像拉取镜像镜像删除 d…

Docker 从入门到实战

docker rm删除已经终止的容器docker -f rm 可以删除正在运行的容器 本文主要介绍了Docker 从入门到实战:概述、安装及部署等 。希望对你的学习有帮助。 一、概述 1.1 基本概念 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开…

docker 入门到实战

目录 1.Docker介绍 1.1 简介: 1.2 Docker的应用场景 1.3 Docker 的优点 1.4 Docker 架构 Docker包括三个基本概念: Docker和虚拟机区别: 2.Docker安装 2.1 CentOS Docker 安装 2.2卸载旧版本 2.3设置仓库 2.4安装Docker 2.5启动docker 2.6…

Virtualbox虚拟机安装Mac os14教程

1、VirtualBox虚拟机 下载地址:https://www.virtualbox.org/ 特别提醒:推荐官方下载,安装VirtualBox虚拟机的时候请保持默认安装位置(就是直接点下一步,不要自己修改安装位置) 2. Mac Os14下载 下载地址…

pd虚拟机安装linux系统,Mac利用PD虚拟机安装CentOS 7

Post Views: 263 使用Parallels Desktop在Mac上安装CentOS Linux的方法有两种: 通过使用Parallels Desktop中可用的CentOS设备。 通过使用从Internet下载的安装映像手动安装CentOS。 使用设备安装CentOS 1.启动Parallels Desktop,然后 从Mac顶部栏中选择 File – New。 2.从…

虚拟机安装MAC系统、搭建ios开发环境

MacOS系统资源,网盘下载:https://pan.baidu.com/s/1xRWusbgfIUxJxMpUbWWRag 提取码: 08fc 1、安装虚拟机 虚拟机下载: http://www.onlinedown.net/soft/2062.htm 注册码: AZ312-2FE41-M81LP-R6WEZ-NA2Z4 VC1J8-0TX11-M84WP-2WN…

mac 安装虚拟机win11

下载PD安装包、win11镜像、PR试用 链接: https://pan.baidu.com/s/1A6M_dc-mL4oUMpVak9Cu3A 提取码: 1cfl 1、下载好后,允许访问文件权限 2、这一步可直接安装,或者跳过通过win11的IOS镜像导入,win11则选择跳过 3、跳过则到该页面&#xff…

VMware14虚拟机安装Mac OS教程

搬运一波,在论坛里搜了下,没有这个教程,就来分享给大家,还是很不错的东西呢!给大家分享在Windows10系统上用Vmware14虚拟机安装苹果Mac os x系统的方法~准备工具 Vmware14虚拟机unlocker补丁mac os x 镜像 下载好上面…

mac下安装win7虚拟机

首先需要有Parallels desktop这个工具 下载win7镜像,下载链接https://msdn.itellyou.cn/ 找到windows7操作系统,下载第一个 下载方式为复制下载地址ed2k链接,然后打开迅雷(或qq旋风等下载工具),自动识别到…

Mac安装Linux虚拟机

1、首先安装VMware 链接地址:https://www.vmware.com/products/fusion/fusion-evaluation.html 安装好后输入txt里的激活码 2、下载linux镜像 下载地址:https://www.centos.org/download/ 这里我装的是CentOS8版本的,在后续安装的过程中&…