1.Copy-on-Write 可写容器层
2.容器层以下所有镜像层都是只读的
docker从上往下依次查找文件
容器层保存镜像变化的部分,并不会对镜像本身进行任何修改
一个镜像最多127层
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
新建虚拟机
[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端口进行映射