1.首先从centsOS7(2)克隆一个虚拟机,我使用的是完整克隆,这使得它独立于原有虚拟机,不影响原有虚拟机。
2.打开虚拟机,登录用户
3.打开终端,切换到root用户 su root
4.更改root系统用户权限文件,vi /etc/sysconfig/network-scripts/ifcfg-ens33
更改文件为内容如下:
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="7815751b-505d-4ae2-b2d4-aa39591dc6aa"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.88.151"
PREFIX="24"
GATEWAY="192.168.88.2"
DNS1="192.168.88.2"
DOMAIN="114.114.114.114"
IPV6_PRIVACY="no"
5.修改保存退出,重启虚拟机。
6.重启后,同样切换到系统用户root,输入命令行:ifconfig,出现下图所示成功。
7.接下来连接finalshell,我们在finalshell里进行后续操作。创建ssh链接。
8.
环境准备
(1)更新 yum 源
# sudo yum update //更新 yum 源
# sudo yum makecache fast //将服务器上的软件包信息 现在本地缓存,以提高搜索安装软件的速度
(2)设置 Docker 仓库
首先,安装所需的软件包。
# sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
使用以下命令来设置稳定的仓库:
阿里云
sudo yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
(3)安装 Docker Engine-Community
# sudo yum install docker-ce docker-ce-cli containerd.io
# systemctl start docker
# docker run hello-world
Docker容器使用
# docker ps -a
(1)Docker Hello World
# docker run ubuntu: latest /bin/echo "Hello world”
再次运行“# docker ps -a”命令查看容器。
(2)运行交互式容器
# docker run -i -t ubuntu /bin/bash
#cat /proc/version
#ls
(3)后台模式启动容器(注意docker logs命令和stop命令只能选取run命令出现结果的前三个)
# docker run -d ubuntu:latest /bin/sh -c "while true; do echo hello world; sleep 1;done"
#docker ps
# docker logs 2b7
#docker stop 2b7
#docker ps
(4)启动已停止运行的容器
#docker ps -a
# docker start 2b7
(5)删除容器
使用 docker rm 命令删除已经停止运行的容器。
(5)从官方仓库搜索和获取镜像并创建容器
搜索镜像的命令:docker search nginx
获取镜像的命令:docker pull nginx
(6)进入容器
# docker run -itd --name ubuntu-demo ubuntu /bin/bash
#docker attach
#docker exec
docker attach 进入容器更简单,但是退出(即执行read escape sequence时,要使用ctrl+P+Q退出去)时需要用 Ctrl+P 加 Ctrl+Q 组合键操作,如果
用 exit 命令退出会结束容器运行状态
3、容器镜像及管理
(1)列出镜像列表
使用 docker images 来列出本地主机上的镜像。
# docker images
(2)获取一个新的镜像
当我们在本地主机上使用一个不存在的镜像时 Docker 就会自动下载这个镜像。如果我
们想预先下载这个镜像,我们可以使用 docker pull 命令来下载它。
# docker pull ubuntu:13.10
下载完成后,我们可以直接使用这个镜像来运行容器。
(3)删除镜像
镜像删除使用 docker rmi 命令,比如我们删除 hello-world 镜像:
# docker rmi hello-world
其中 hello-world 也可以用容器
(4)导出和导入容器
#docker export ab6615f18894 >ubuntu.tar
#docker import ubuntu.tar
(5)从容器创建镜像
示例:将容器 ab6615f18894保存为新的镜像,并添加提交人信息和说明信息。
# docker commit -a "admin" -m "my apache" ab6615f18894 mymysql:v1
# docker images mymysql:v1
4、基于容器运行 Web 应用
# docker pull training/webapp # 载入镜像
# docker run -d -p 8080:80 training/webapp python app.py
参数说明:
-d:让容器在后台运行。
-p:将主机端口和容器中应用的端口进行映射。
如果-p 改为-P,将容器内部使用的网络端口随机映射到我们使用的主机上。
使用 docker ps 查看正在运行的容器,观察端口映射。然后,打开浏览器,输入 docker
宿主机的 IP 地址加端口,测试 web 应用是否正常运行。
完整版命令如下:
docker pull training/webapp
docker run -d -P training/webapp python app.py
docker ps
netstat | grep (随机端口ip)
netstat - nltp | grep (随机端口ip)
curl localhost:(随机端口ip)
exit
docker run -d -p 8080(分配ip):80 training/webapp python app.py #人为分配主机使用的端口,以防每次访问webapp都需要先查询端口号
docker ps
netstat | grep 8080
curl localhost:8080
打开浏览器,输入 docker宿主机的 IP 地址加端口,测试 web 应用是否正常运行。
ifconfig -a #获取ip地址的命令
192.168.88.151:8080
补充:
docker ps #查找正在运行的容器信息
docker ps -a #查找所有的容器信息