- Docker可以认为是vmware或者virtualbox
- 镜像可以认为是 xxx.iso
- 容器可以认为是 virtualbox运行xxx.iso后的系统
查看容器
docker ps -a
root@li1041-243:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c3686838ba3d danielguerra/ubuntu-xrdp “/usr/bin/docker-ent…” 6 hours ago Up 6 hours 0.0.0.0:3389->3389/tcp, 9001/tcp, 0.0.0.0:2222->22/tcp uxrdp
进入已经停止运行的容器
docker start container ID
docker attach container ID
把修改或运行后的容器再打包为镜像(ISO)
- 退出容器
- 查看容器
docker ps -a - 把容器打成镜像
sudo docker commit -p c3686838ba3d vpsxyz/xrdp:20190218
c3686838ba3d是容器的idvpsxyz是你注册的https://store.docker.com/的名字,如果你没有的话,那需要先注册xrdp是你为该镜像起的名字- :20190218 是镜像的版本号,默认是latest版本
root@li1041-243:~# sudo docker commit c3686838ba3d vpsxyz/xrdp:20190218
sha256:f66eb34fb39558f5ae2d28952befb877be03130ad067435416bf61d8f4e09523
当做完操作需要保存时再开一个窗口
root@li1041-243:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ecb1e3a329fd vpsxyz/vpsxyz:v02 “/startup.sh” 6 minutes ago Up 6 minutes (healthy) 22/tcp, 0.0.0.0:5900->5900/tcp, 0.0.0.0:6080->80/tcp quizzical_heyrovsky
root@li1041-243:~# docker commit ecb1e3a329fd vpsxyz/vpsxyz:v02
sha256:30665ee9da7242b9e7164d181a5af7706ff1ff9908592f1e0637f33baf4ffc70
r
4.查看镜像docker images
root@li1041-243:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
vpsxyz/xrdp 20190218 f66eb34fb395 About a minute ago 1.28GB
danielguerra/ubuntu-xrdp latest 44bd892742f7 4 weeks ago 981MB
相比原镜像多了些软件,大小变大了.
上传镜像
登录
docker login
上传
docker push vpsxyz/xrdp:20190218
OK!
再次使用该镜像就可以直接docker pull vpsxyz/xrdp:20190218
另一台服务器上:
抓取 image 文件
docker pull vpsxyz/xrdp:20190218
查看镜像
docker image ls
运行抓取到的镜像
会从 image 文件,生成一个正在运行的容器实例。(新建容器)
docker container run vpsxyz/xrdp:20190218
如果已经运行过,生成了容器,想要运行则是:
docker container start vpsxyz/xrdp:20190218
也可以直接省略上面的步骤
docker pull vpsxyz/xrdp:20190218
有些容器会自动终止,有些不会自动终止
终止容器
docker container kill [containID]
image 文件生成的容器实例,本身也是一个文件,称为容器文件。也就是说,一旦容器生成,就会同时存在两个文件: image 文件和容器文件。而且关闭容器并不会删除容器文件,只是容器停止运行而已。
列出本机所有容器,包括终止运行的容器
docker container ls --all
删除终止运行的无用的容器文件(节约硬盘空间)
docker container rm [containerID]
从正在运行的 Docker 容器里面,将文件拷贝到本机
容器与主机之间的数据拷贝。
docker container cp [containID]:[/path/to/file] /local/path/file
**********************************************************************
**********************************************************************
Docker 最低支持 CentOS 7
使用脚本自动安装
curl -sSL https://get.docker.com/ | sh
service docker start
docker pull ubuntu:16.04
启动容器ubuntu里面的 bash 并且进行交互式操作
docker run -it ubuntu:16.04 bash
通过 exit 退出了这个容器
列出镜像
docker images
导出容器
docker ps -a
docker export 7691a814370e > ubuntu.tar
python3 -m http.server 8080
python -m SimpleHTTPServer 8080
导入容器快照
cat ubuntu.tar | sudo docker import – test/ubuntu:v1.0
默认情况下Docker的存放位置为:/var/lib/docker
可以通过下面命令查看具体位置:
docker info | grep “Docker Root Dir”
修改Docker本地镜像与容器的存储位置
service docker stop
mkdir -p /data
mv /var/lib/docker /data/docker
ln -s /data/docker /var/lib/docker
curl -sSL https://get.docker.com/ | sh
service docker start
docker run -p 6080:80 -p 5900:5900 -e VNC_PASSWORD=mypassword dorowu/ubuntu-desktop-lxde-vnc:bionic
docker ps -a
sudo docker commit -p b35dfe5324e8 vpsxyz/xrdp:20190218
docker push vpsxyz/xrdp:20190218
docker run -p 6080:80 -p 5900:5900 –add-host=account.jetbrains.com:0.0.0.0 -e VNC_PASSWORD=xxx vpsxyz/vpsxyz:v03
