Docker傻瓜使用速成

# Docker 一键安装命令
curl -fsSLo- get.docker.com | /bin/sh

# 运行 hello-world 检查Docker引擎是否安装
docker run hello-world

# 运行一个 Ubuntu 容器
docker run -it ubuntu bash

# 显示所有的容器
docker ps -a

# 显示本机镜像
docker images

# 查看Ubuntu镜像的历史
docker history hello-world

# 查看镜像的历史
docker history ubuntu

#  删除所有容器
docker rm  -f  $(docker ps -qa)

#  删除所有镜像
docker rmi -f  $(docker images -qa)

———————————–

# 国内使用阿里云镜像
wget get.docker.com -O get.docker.sh
bash  get.docker.sh  –mirror Aliyun

# 使用国内镜像,显示deb包 源为 mirrors.aliyun.com
cat  /etc/apt/sources.list.d/docker.list
deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/debian buster stable

镜像下载  修改 vim /etc/docker/daemon.json 添加 国内源,网上可以查

限制日志大小, vim /etc/docker/daemon.json  里设置
没有去用过,使用脚本 自动删除也是可以的

———————————————————-
Docker 不是虚拟机,所以使用 htop 工具,是可以看到容器中运行的程序,运行的服务程序实际还是在宿主机上的,只是 Docker 容器挂载了虚拟的文件系统,Docker中的程序是和宿主机其他程序 文件系统隔离的。

图片[1]-Docker傻瓜使用速成-栗子博客

如图  使用简单的命令,可以 进入 一个当前活动的容器的 root 目录,可以看到  /var/lib/docker/overlay2/ed3….. /merged 是这个容器的 / 根目录

df -h
cd /var/lib/docker/overlay2/ed3b19ce3a1402bd9a09ccde057145129714e5e70e7f6255e3d96e73feb9b50e/merged
ls

——————————————————–
docker  安装后有2个重要目录  /var/lib/docker/containers     /var/lib/docker/overlay2   

docker ps -a   运行后 会显示  CONTAINER ID  < ba5148927a1e>    ba5148927a1e 就是 hello-world 这个容器的 ID
/var/lib/docker/containers/ba5148927a1e98322f8628650e8ef3b3ddd38e88bb59669dadf82433e932be7a    (ID前缀的这个长目录就还是容器目录)
里面保存了  这个容器的配置,主要保存在  config.v2.json文件中,   ID前缀….log 就是这个容器的 运行日志
docker logs  ba5148927a1e  就能查看日志

——————–

还有就是新手 在目前国内环境,python3和库环境不一定能装好
Python3 With Network Library ( html2text scrapy beautifulsoup4 ipip-ipdb )
所以请在虚拟机里安装个 docker ,使用我制作的 python3 容器镜像

docker run -d  –restart=always -v /app:/app  –name python3   hongwenjun/python3  python3 -m http.server 8000

然后使用 这样命令 交互模式学习

docker exec -it python3  python3 -i me.py

图片[2]-Docker傻瓜使用速成-栗子博客
这个镜像的 Dockerfile 里面已经安装学习爬虫够用的网路库
# 直接使用github上的  Dockerfile 来编译构建 镜像
docker build -t python3  https://raw.githubusercontent.com/hongwenjun/nginx-php/main/python3/Dockerfile

 

 

如何查看并干净卸载所有容器和docker

1,查看所有运行的容器:

docker ps -a

2,停止所有容器,并删除所有容器

docker stop $(docker ps -q) & docker rm $(docker ps -aq)

3,删除所有镜像

docker rmi $(docker images -q)

4,卸载docker

apt-get purge docker-ce

apt-get purge docker-ce-cli

apt-get purge containerd.io

5,检查是否卸载完成

apt list –installed | grep docker

apt list –installed | grep containerd.io

6,删除残余文件

rm -rf /var/lib/docker

rm -rf /var/run/docker

rm -rf /etc/docker

rm -rf /run/docker.sock

rm -rf /var/lib/containerd

rm -rf /run/containerd

rm -rf /opt/containerd

图片[3]-Docker傻瓜使用速成-栗子博客

Portainer是Docker的图形化管理工具,提供状态显示面板…..

# 查询当前有哪些Portainer镜像
docker search portaine

# 安装Docker可视化界面Portainer
docker run –name Portainer   portainer/portainer   …  省略

# 删除Portainer服务
docker rm  -f Portainer
docker rmi portainer/portainer

# 进入 mysql 容器
docker exec -it zfaka_mysql_1 bash

# MySQL数据库备份
mysqldump  -uroot -p密码(mysql) –databases faka  > /tmp/faka.sql

# 退出容器,进入宿主机zfaka目录 打包程序和数据
cd /opt/zfaka
docker cp zfaka_mysql_1:/tmp/faka.sql  .

tar cvzf  zfaka.tar.gz   code/  faka.sql  docker-compose.yml

Docker mysql 可以不用进入容器直接在宿主机备份数据
docker exec -i zfaka_mysql_1  mysqldump  -uroot -p密码(mysql) –databases faka  > /opt/zfaka/zfaka_bak.sql

# 可以配合定时脚本,用来每周备份数据库等
TODAY=$(date +%Y)$(date +%m)$(date +%d)
mkdir -p $(pwd)/$TODAY && cd $(pwd)/$TODAY
docker exec -i zfaka_mysql_1  mysqldump  -uroot -p密码(mysql) –databases faka  > faka.sql

 

建立容器的时候 可以指定一个 容器名称,不指定 就使用   hash 字符的 作为 ID号

docker  stop    name(或者ID,使用name会简单点)
docker  start    name
docker  restart   name

—————————–
# 宿主机和容器互相复制文件
docker cp name:/root/a.txt   /root/a.txt
docker cp /root/a.txt   name:/root/a.txt

 

© 版权声明
THE END
点赞0
抢沙发
头像
提交
头像

昵称

取消
昵称
一言一语