为什么要使用Docker?
- 减少编写代码和在生产环境中运行代码之间的延迟。
使用Docker有什么好处?
- 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
- 容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
CentOS安装Docker
- 卸载旧版本
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
- 需要的安装包
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
- 设置镜像仓库(阿里云)
$ sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 安装docker相关的 (docker-ce 社区版 ee 企业版)
sudo yum install docker-ce docker-ce-cli containerd.io
- 启动Docker,查看版本
sudo systemctl start docker
docker version
- 测试helloword,(由于本地没有,所以是从远程仓库拉取)
sudo docker run hello-world
- 查看helloword镜像
docker images

- 阿里云镜像加速
依次点击
- 登录阿里云
- 镜像容器服务
- 镜像中心
- 镜像加速器
- 选择对应的系统,依次执行命令

Docker运行原理
run的运行流程图

- Docker是如何工作的?
Docker是一个Client-Server结构的系统Docker的守护进程运行在主机上,通过Socket从客户端访问Docker-Client接收到Docker-client的指令,就会执行这个指令

Docker为什么比虚拟机快?
- 它有着比虚拟机更少的抽象层。
- 它利用的是宿主机的内核,而虚拟机需要
GuestOS,新建一个容器的时候,docker不需要像虚拟机一样重新加载一个操作系统内核,避免引导。 - 虚拟机加载
GuestOS,是分钟级别的,而Docker是利用宿主机的操作系统,省略这个复杂的引导过程,秒级别的。

常用命令
镜像命令
docker -image --help帮助docker -image -a显示所有的镜像docker -image -q只显示镜像的IDdocker search XXX搜索某个镜像, 如:docker search mysqldocker pull XXX下载某个镜像,如:docker pull mysql:5.7docker rmi -f “id”根据id删除镜像, 如:docker rmi -f bf756fb1ae65docker rmi -f $(docker images -aq)删除全部的镜像
容器命令
说明:我们有了镜像才能创建容器
docker pull centos下载centos镜像docker run -it ***新建容器并启动
docker run [可选参数] image
[可选参数说明]
--name="***" 容器名字,用来区分容器
-d 后台方式运行
-i 或者 -t 使用交互方式运行,进入容器查看内容
-p(小写) 指定容器的端口
-P(大写) 随机指定端口
exit停止容器并退出Ctrl + P + Q退出不停止docker ps查看当前运行中的容器docker ps -a查看当前运行中+曾今运行过的的容器docker rm 容器ID删除指定容器docker rm -f $(docker ps -aq)删除所有的容器docker ps -a -q|xargs docker rm删除所有的容器docker start/stop/restart/kill 容器ID启动,停止,重启,强制停止某容器
常见其他命令
- 后台启动容器
docker run -d centos- 问题:当
docker ps查看运行的容器的时候,发现centos停止了 - 原因:docker容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止。
- 查看容器日志
docker logs -tf --tail (要显示的条数) 容器id:查看容器进程信息docker top 容器id查看容器进程信息docker inspect 容器id查看镜像的元数据docker exec -it 容器id进入当前正在运行的容器,进行一些配置的修改docker attach 容器id进入当前容器,可以看到他正在运行的东西
- 从容器拷贝文件到主机上
docker cp 容器id:/home/test.java /home
命令总结

1284

被折叠的 条评论
为什么被折叠?



