wget -qO- https://get.docker.com/ | sh
查看是否安装成功
docker version
启动 docker
service docker start
修改或新增 /etc/docker/daemon.json
$ vim /etc/docker/daemon.json
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
$ systemctl restart docker.service
镜像(Image
)和容器(Container
)的关系,就像是面向对象程序设计中的 类
和 实例
一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的命名空间。因此容器可以拥有自己的 root
文件系统、自己的网络配置、自己的进程空间,甚至自己的用户 ID 空间。
容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操作一样。
文件拷贝
docker cp /home/ubuntu/Java/ROOT f853e6b9cc5f:/var/tmp/tomcat/apache-tomcat-8.5.8/webapps/
常用命令
# 重启 docker 镜像
service docker restart
# 查看所有镜像
docker images
# 删除镜像 Image
docker rmi 5b821518a2dd
# 正在运行容器
docker ps
# 查看docker容器
docker ps -a
# 启动tomcat:7镜像
docker run -p 8080:8080 tomcat:7
# 以后台守护进程的方式启动
docker run -d tomcat:8
# 停止一个容器
docker stop b840db1d182b
# 进入一个容器
docker attach d48b21a7e439
# 进入正在运行容器并以命令行交互
docker exec -it e9410ee182bd /bin/sh
# 以交互的方式运行
docker run -i -t -p 8081:8080 tomcat:7 /bin/bash
-i:表示以“交互模式”运行容器
-t:表示容器启动后会进入其命令行
-v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>
删除停止的容器
docker rm $(docker ps --all -q -f status=exited)
删除所有容器
sudo docker rm `sudo docker ps -a -q`
删除没有使用的镜像
docker rmi -f $(docker images | grep "<none>" | awk "{print \$3}")