docker简介7.20
一、前言
一、容器的介绍
1.Copy-on-Write 可写容器层
2.容器层以下所有镜像层都是只读的
docker从上往下依次查找文件
容器层保存镜像变化的部分,并不会对镜像本身进行任何修改
一个镜像最多127层
二、虚拟机和docker区别
二、基础命令
docker pull busybox %从镜像仓库拉取(下载)镜像
docker load -i busybox.tar %本地已有镜像包的时候直接在本地加载镜像
docker images %查看本地镜像列表
docker history busybox:latest %查看镜像修改历史
docker ps %查看后台开启的容器状态
docker ps -a %查看后台所有容器状态
docker rm -f ef3b3fa540ec %删除容器
docker build -t demo:v6 . %创建容器(以当前路径下的dockerfile自动创建的方式)
docker run --rm demo:v6 %rm表示运行容器后回收(删除)
docker run -d demo:v6 %-d表示运行容器的同时将其打入后台
docker run -it --name demo demo:v5 %-it表示运行容器的同时进入容器,交互式
docker inspect demo %查看容器详细信息
docker commit demo demo:v1 %把demo保存为demo:v1
docker run -d --name demo nginx %以demo的名字后台运行
docker run -d --name demo -p 80:80 game2048
%在后台用取名为demo的容器运行game2048,从虚拟机到容器的端口映射为80
docker load -i busybox 将文件busybox导入到容器
docker run -it -d --name demo nginx开启容器,在取名demo的容器中运行nginx
删除进程
docker rmi game2048:latest
二、docker安装
新建虚拟机
[root@localhost yum.repos.d] vim docker.repo
[docker]
name=docker-ce
baseurl=http://172.25.42.250/docker-ce
gpgcheck=0
启用
[root@localhost yum.repos.d] vim docker.repo
[root@localhost yum.repos.d] systemctl start docker
[root@localhost yum.repos.d] systemctl enable docker
[root@localhost yum.repos.d] docker info 查看docker运行情况
正常情况
当出现以下报错时
解决方法
[root@server1 sysctl.d]# pwd #如果docker info出现下图警告,下面解决
/etc/sysctl.d
[root@server1 sysctl.d]# cat docker.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
[root@server1 sysctl.d]# sysctl --system #重启就没有警告了
当显示ip4/6未开启时,解决方法
vim /etc/sysctl.conf
///
net.ipv4.ip_forward = 1
///
sysctl -p
三、导入游戏包程序运行
利用游戏的镜像tar,导入容器,运行容器并打入后台,80端口映射到80端口
[root@server1 mnt] ls
game2048.tar harbor harbor-offline-installer-v1.10.1.tgz
[root@server1 mnt] docker load -i game2048.tar
[root@server1 mnt] docker run -d --name demo -p 80:80 game2048
即可在网页上看到效果
再次运行另一个游戏时
[root@server1 mnt] docker rm -f demo 删除之前的进程
[root@server1 mnt] docker load -i mario.tar
[root@server1 mnt] docker run -d --name demo -p 80:8080 mario 以8080端口进行映射