Docker入门

本文介绍了如何在Windows和Linux(包括AWSEC2和阿里云)上安装Docker,以及基本的操作如创建镜像、运行容器、安装软件和配置SSH服务,特别关注了国内镜像加速和端口映射的问题。
摘要由CSDN通过智能技术生成

本文仅作为学习内容的记录,专注于实操,概念类的解释可能有不到位的地方。

前言

以前,想有一台Linux服务器,企业级的有虚拟机,家庭版的就是双系统。有了Docker,这件事就变得非常简单了。

基础概念

Docker : 一个开源的应用容器引擎,它提供了一种标准化、轻量级的容器化解决方案,使开发人员和系统管理员能够更便捷地打包、分发、部署和运行应用程序及其依赖环境。

容器(container): 可以简单理解为Image的一个实例;加了读写层的Image。

镜像(Image):只读的模板。

安装Docker:

Window安装(对系统有一定的要求,安装前先确认一下;我的是Win10 专业版 64位机)

官网下载最新版本:Get Started | Docker

AWS EC2/Linux上安装  

基础知识: 创建容器镜像以在 Amazon ECS 上使用 - Amazon Elastic Container Service

sudo yum install -y docker
下载镜像

国内访问官方镜像比较慢,建议添加国内的镜像。下图中,黄色部分是我添加的部分可用镜像。

阿里云的镜像也是比较稳定的,但需要个人注册,适合已经有账户的。

打开cmd命令行,查看修改是否有效:

docker version

Registry Mirrors会显示配置好的地址。

我们先安装一个Ubuntu

docker search ubuntu

我们选择最新版的 Ubuntu。如果有版本需求 就加上版本号。

docker pull ubuntu

等待镜像下载,结束就可以启动容器了。

运行镜像

方法一:

window下,界面操作是最直接的。

在Imgages里面找到我们想启动的,点击Run就可以了。这里还可以配置一些参数:

点击左侧的container,就可以进入创建好的Ubuntu系统了。

方法二:

在cmd命令行里输入

docker run -it ubuntu

启动成功后,cmd界面会连入到Ubuntu系统。如果不小心关掉cmd窗口,怎样再次进入呢?

可以使用下面的命令:

C:\Users\ronghua>docker exec -it 52817667ecd9 /bin/bash
root@52817667ecd9:/#
docker container ls

-it 后面的参数是 container的ID。

安装其他软件

先来更新apt-get。

在cmd和Docker Desktop里面执行相同的命令,显示的错误不太一样。

一个报403,一个是Hash Sum mismatch。

先修改一下 apt源

修改先,先备份原文件:

cp /etc/apt/sources.list /etc/apt/sources.list.bak

添加网易的源后,还是有报错:

换阿里云终于OK了。

deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

 apt升级后,我们就可以安装自己需要的软件了。

apt-get install vim
apt-get install openssh-server

看看当前系统已经安装了哪些软件?

apt list --installed
apt list --installed | grep ssh
apt show ssh

接下来我们配置ssh

1. 给root账户设置一个密码: passwd

2. 修改配置文件

vim /etc/ssh/sshd_config

注释掉PermitRootLogin prohibit-password
添加PermitRootLogin yes

3. 重启ssh服务

# /etc/init.d/ssh restart
 * Restarting OpenBSD Secure Shell server sshd

查看ssh服务是否启动成功

 ps -e|grep ssh
 3239 ?        00:00:00 sshd

如果显示sshd,表明ssh server启动成功。

试着在客户端连一下,结果失败了。这是因为我们在启动的时候,没有指定container对外的端口。现在container已经创建,start的时候不能再增加 -P。

bing了一下解决方案:

1. 将现有的container打包成一个镜像

docker commit container-name  new-image-name

  利用此镜像,重启一个container,并指定port :将本机的7788端口映射到Container的22端口

docker run -it -p 7788:22 joyce_ubuntu
root@fca1b48f9d14:/# ps -e|grep ssh
root@fca1b48f9d14:/# /etc/init.d/ssh start
 * Starting OpenBSD Secure Shell server sshd
ssh root@127.0.0.1 -p 7788

2.修改现有的Container

window下找到对应的文件比较难(这里需要学习WSL 2),后续有时间了再研究。

在Linux下的,可以参考docker给已存在的容器添加或修改端口映射_docker 创建容器无法设置端口-CSDN博客(未验证)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值