docker基本教程(基本包括所有常用功能)

docker基本教程

1、安装教程

docker安装地址: https://docs.docker.com/engine/install/ubuntu/

bash 复制代码
安装:
    sudo apt-get update
    sudo apt-get install  ca-certificates  curl  gnupg  lsb-release
    sudo mkdir -p /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    echo  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    sudo apt-get update
    sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
    <!-- sudo docker run hello-world 验证操作 -->

卸载:
    sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-compose-plugin
    sudo rm -rf /var/lib/docker
    sudo rm -rf /var/lib/containerd

2、docker使用

下载镜像:

bash 复制代码
sudo docker pull ubuntu:18.04

查看镜像:

bash 复制代码
sudo docker images

从镜像生成容器:

bash 复制代码
sudo docker run -itd --name 名字 -p 6001:22 -p 6000:8080 -v 主机文件夹:容器文件夹 镜像ID /bin/bash

注:可以多个端口映射与文件夹映射

容器查看:

bash 复制代码
sudo docker ps -a

关闭容器:

bash 复制代码
sudo docker stop <容器ID>

开启容器:

bash 复制代码
sudo docker start <容器ID>

进入容器:

bash 复制代码
sudo docker exec -it <容器ID> /bin/bash

3、镜像与容器的保存

容器保存为镜像:

bash 复制代码
sudo  docker commit -m "xxx" <容器ID>  镜像名:标签

镜像保存为本地文件:

bash 复制代码
```bash
    sudo docker save -o  xxx.tar <镜像ID | (镜像名:标签) >

ex.
    sudo docker commit -m "vue3" 6844  ubuntu_vue:1.0
    sudo docker save -o ubuntu_vue.tar ubuntu_vue:1.0

    sudo docker commit -m "tyq" a6aeed169522 hwpytorch:1.5
    sudo docker save -o hwpytorch.tar hwpytorch:1.5

4、镜像加载

bash 复制代码
sudo docker load -i xxx.tar

5、空间

查看空间:

bash 复制代码
sudo docker system df

全盘清理:

bash 复制代码
sudo docker system prune

build cache 清理:

bash 复制代码
sudo docker builder prune

数据卷清理:

bash 复制代码
sudo docker volume prune

镜像清理:

bash 复制代码
sudo docker rmi <镜像ID>

容器清理:

bash 复制代码
sudo docker rm -f <容器ID>

6、动态容器添加ip映射(非保存文件映射|端口映射)

bash 复制代码
sudo iptables -t nat -A DOCKER -p tcp --dport ${宿主机端口} -j DNAT --to-dest ${容器ip}:${容器端口}
sudo iptables -t nat -A POSTROUTING -p tcp -s ${容器ip} -d ${容器ip} --dport ${容器端口} -j MASQUERADE
sudo iptables -A DOCKER -p tcp -d ${容器ip} --dport ${容器端口} -j ACCEPT

注意:实测第二行指令不需要(ip伪装)

显示 规则

bash 复制代码
sudo iptables -t nat -vnL DOCKER --line-number

删除规则

bash 复制代码
sudo iptables -t nat -D DOCKER ${行号}

保存和重新加载路由

bash 复制代码
sudo apt-get install iptables-persistent
sudo netfilter-persistent save
sudo netfilter-persistent reload

7、docker 容器设置远程访问

安装ssh:

bash 复制代码
apt-get install ssh

修改/etc/ssh/sshd_config

bash 复制代码
PermitRootLogin yes

重启服务

bash 复制代码
service ssh restart

8、docker中MySQL 数据库安装

mysql 5.7:

bash 复制代码
vim /etc/mysql/mysql.conf.d/mysqld.cnf  修改:bind-address = 0.0.0.0

9、docker中的网络

共享主机 (host)

桥接(网桥)模式(bridge)

container模式(container)

10、别人的教程

华为dcoekr使用

https://bbs.huaweicloud.com/blogs/178430

docker 空间清理

https://cloud.tencent.com/developer/article/1581147

dockerhub私有化部署

Deploy a registry server | Docker Documentation](https://docs.docker.com/registry/deploying/)

dockfile构建
制作一个超级精简的 Docker 镜像只需7步 - SanSan-33的个人空间 - OSCHINA - 中文开源技术交流社区

相关推荐
三块钱0794几秒前
nas-群晖docker查询注册表失败解决办法
运维·docker·容器
一叶之秋14122 小时前
Linux基础IO
linux·运维·服务器
longerxin20206 小时前
在 Linux 上使用 SCP 将文件传输到 Windows(已开启 SSH)
linux·运维·ssh
zhaotiannuo_19988 小时前
渗透测试之docker
运维·docker·容器
王正南9 小时前
kali-linux 虚拟机连接安卓模拟器
android·linux·运维·虚拟机连接模拟器·安卓模拟器,linux虚拟机
三不原则9 小时前
故障案例:容器启动失败排查(AI运维场景)——从日志分析到根因定位
运维·人工智能·kubernetes
吳所畏惧9 小时前
Linux环境/麒麟V10SP3下离线安装Redis、修改默认密码并设置Redis开机自启动
linux·运维·服务器·redis·中间件·架构·ssh
孤岛悬城9 小时前
54 安装k8s-1.20.11
云原生·容器·kubernetes
yueguangni9 小时前
sysstat 版本 10.1.5 是 CentOS 7 的默认版本,默认情况下确实不显示 %wait 字段。需要升级到新版sysstat
linux·运维·centos
funfan051710 小时前
【运维】MySQL数据库全量备份与恢复实战指南:从入门到精通
运维·数据库·mysql