创建一个映射80端口的容器
$ docker run -p 80 -i -t --name zjw ubuntu /bin/bash
查看容器的端口映射:
$ docker port zjw
80/tcp -> 0.0.0.0:32768 容器的80端口映射到了主句或者客户端的32786端口
在客户端访问容器内部的ip端口:浏览器也可以
$ curl http://172.17.0.1
:32768
构建镜像 例子:
1、修改容器
root@46d191046226:/# apt-get update
#安装 nginx
root@46d191046226:/# apt-get install -y nginx
#安装好后退出
root@46d191046226:/# exit
#查看刚才的容器
zjw@zjw-VirtualBox:~$ docker ps -l
#提交我刚才容器的镜像 : -a :作者信息;-m:镜像信息 ;zjw:是容器名字ubuntu/commit_test1 镜像名字
zjw@zjw-VirtualBox:~$ docker commit -a 'zhangjiawei' -m 'nginx' zjw ubuntu/commit_test1
#查看我的镜像
基于我创建的镜像新建一个容器(这个里面就包含了我刚才那些配置)
zjw@zjw-VirtualBox:~$ docker run -i -t --name zjwImage ubuntu/commit_test1 /bin/bash
测试:进入容器后安装nginx,因为前面已经安装了,所以这里就是显示最新版不用安装了,结果非常对
root@15b0564d0fc1:/# apt-get install -y nginx #已经是最新版本
使用dockerfile 创建镜像,思路是将原来构建好的容器步骤一条命令一条命令执行,自动化创建镜像(感觉不适合我先不学了)最终得到的结果还是得到
ubuntu/commit_test1 这个镜像
网络
1,安装查看虚拟网桥的工具
zjw@zjw-VirtualBox:~$ sudo apt-get install bridge-utils
用这个工具查看虚拟网桥
zjw@zjw-VirtualBox:~$ sudo brctl show # 有一个docker的网桥
2,创建一个容器
docker镜像没有ifconfig、ping指令
Docker的Ubuntu镜像安装的容器无ifconfig命令和ping命令
zjw@zjw-VirtualBox:~$ docker run -i -t --name test1 ubuntu /bin/bash
使用ifconfig命令查看ip
解决:
apt-get update
apt install net-tools # ifconfig
apt install iputils-ping # ping