python编程快速上手(持续更新中…)
python实战项目(Django技术点)
1. Docker介绍
Docker中文社区文档
Docker 是轻量级的应用容器框架。
Docker 可以打包、发布、运行任何的应用。
Docker 是一个客户端-服务端(C/S)架构程序。
客户端只需要向服务端发出请求,服务端处理完请求后会返回结果。
Docker 包括三个基本概念:
镜像(Image)
Docker的镜像概念类似于虚拟机里的镜像,是一个只读的模板,一个独立的文件系统,包括运行容器所需的数据,可以用来创建新的容器。
例如:一个镜像可以包含一个完整的 ubuntu 操作系统环境,里面仅安装了MySQL或用户需要的其它应用程序。
容器(Container)
Docker容器是由Docker镜像创建的运行实例,类似VM虚拟机,支持启动,停止,删除等。
每个容器间是相互隔离的,容器中会运行特定的应用,包含特定应用的代码及所需的依赖文件。
仓库(Repository)
Docker的仓库功能类似于Github,是用于托管镜像的。
2. Docker安装
1.源码安装Docker CE
sudo mkdir /home/docker
上传docker-ce_17.03.2_ce-0_ubuntu-trusty_amd64.deb包
sudo dpkg -i docker-ce_17.03.2ce-0ubuntu-xenial_amd64.deb
$ docker -help
2.安装完成Docker后,默认已经启动了docker服务。
#启动docker
$ sudo service docker start
#重启docker
sudo service docker restart
#停止docker
sudo service docker stop
3.检查Docker CE是否安装正确
sudo docker run hello-world
docker启动失败
python@ubuntu:~$ sudo systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; disabled; vendor preset:
Active: failed (Result: exit-code) since 一 2021-10-25 09:38:16 CST; 39s ago
Docs: https://docs.docker.com
Process: 30425 ExecStart=/usr/bin/dockerd -H fd:// (code=exited, status=127)
Main PID: 30425 (code=exited, status=127)
解决:
原本想卸载,执行sudo apt-get remove docker,提示“apt-get -f install”,执行后尽然安装成功啦
python@ubuntu:~$ sudo apt-get remove docker
正在读取软件包列表… 完成
正在分析软件包的依赖关系树
正在读取状态信息… 完成
软件包 docker 未安装,所以不会被卸载
您可能需要运行“apt-get -f install”来纠正下列错误:
下列软件包有未满足的依赖关系:
docker-ce : 依赖: libsystemd-journal0 (>= 201) 但无法安装它
推荐: aufs-tools 但是它将不会被安装
推荐: cgroupfs-mount 但是它将不会被安装 或
cgroup-lite 但是它将不会被安装
E: 有未能满足的依赖关系。请尝试不指明软件包的名字来运行“apt-get -f install”(也可以指定一个解决办法)。
测试(sudo docker run hello-world)
Unable to find image ‘hello-world:latest’ locally
docker在本地没有找到hello-world镜像,也没有从docker仓库中拉取镜像,出项这个问题的原因:是应为docker服务器再国外,我们在国内
无法正常拉取镜像,所以就需要我们为docker设置国内阿里云的镜像加速器;
需要修改配置文件 /etc/docker/daemon.json 如下
{
"registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com"]
}
3. Docker镜像操作
#查看镜像
docker image ls
#下载redis
docker pull redis
#导出镜像
sudo docker save -o redis.rar redis
#删除镜像
sudo docker image rm redis:latest
#加载本地镜像-拖进来
sudo docker load -i
4. Docker容器操作
#查看容器
sudo docker container ls --all
或者
sudo docker container ls -a
#清空容器
sudo docker rm -f $(sudo docker ps -a -q)
#运行镜像
sudo docker run [选项] 镜像名 [指令]
sudo docker run -it ubuntu
退出:exit
守护进程
sudo docker run -dit ubuntu
进入运行容器中
sudo docker exec -it ubuntu2 /bin/bash
设置名子
sudo docker run -dit --name=myubuntu ubuntu
停止容器
sudo docker container stop myubuntu
开启
sudo docker container start myubuntu
删除
sudo docker container rm -f myubuntu