docker初体验

先创建一个容器

我先下了个镜像,开启镜像命令如下:

sudo docker run -ti --name Exercise ubuntu:16.04 bash

依次执行下述命令:

apt-get update
apt-get install vim
apt-get install net-tools
apt install iputils-ping 
apt install apache2
apt install apache2-utils
apt install openssh-server
apt install openssh-client

修改文件

vim /etc/ssh/sshd_config

把“PermitRootLogin”的内容改为 yes,保存。
输入

passwd

输入root密码,自己记住
完成之后退出容器。使用 docker ps -a 找到你刚才运行的容器,找到之后从这个容器提交新镜像:

sudo docker commit -m "My network exercise" Exercise net:v1.0

说明:
-m 是添加一个对镜像的简短说明,和 git 类似;
其后一个参数是刚刚容器的名字或者 ID;
最后是新镜像的名字:标签对。

端口暴露

说明:
-p hostPort:containerPort 映射所有 IP 地址上的指定端口到容器内部
-p ip:hostPort:containerPort 映射指定 IP 地址上的指定端口到容器内部
-p ip::containerPort 映射指定 IP 地址上的任意端口到容器内部

执行命令:

sudo docker run -ti --name web -p 80:80 net:v1.0 bash

这条命令启动了一个容器,映射宿主主机所有 IP 的80端口到容器的80端口。
然后,在容器里面启动 Apache 服务(之前的准备工作中,我们已经安装好了 ApacheWeb 服务器,它提供了一个默认网页),容器里面运行如下指令:

apache2ctl start

然后查看容器的 IP 地址是“172.17.0.2”(你的 IP 可能有所不同):


image.png

此时,打开你的宿主主机(即安装 Docker 的计算机)上的浏览器,输入 IP 地址就可以访问 Apache 服务器的默认主页了

我用的阿里云服务器,因此这一步省了

可以查看自己宿主机的IP地址,然后在同一局域网内用其他设备访问宿主机ip地址也可以看到页面。我按照阿里云的提示修改了如下安全组内容:


image.png

开放了80,443端口。然后从我的浏览器访问阿里云服务器的公网IP地址:


image.png

成功访问,端口暴露不仅仅可以用来把容器作为 Web 服务器使用,还可以通过网络让不同容器之间相互通信,Docker 默认使用 TCP 协议在容器之间进行网络通信,如果你需要 UDP,可以使用如下格式指定:
sudo docker run -ti --name web -p 80:80/udp net:v1.0 bash

你可能感兴趣的:(docker初体验)