Docker基础知识词典_持续更新。。。_v1.0.3

文件名称版本号作者qq版本
Docker基础知识词典_持续更新。。。v1.0.3若布与宫合8416837Cent OS 8
Ubuntu 18

CentOS 7

Docker报错重装 注意:容器全丢

Ubuntu重装教程

预备

  • 检验
cat /etc/redhat-release # 查看版本
# output CentOS Linux release 7.2.1511 (Core)
uname -r
# output 3.10.0-862.el7.x86_64
docker
# output -bash: docker: command not found

安装

yum -y install docker-io

output
在这里插入图片描述
在这里插入图片描述
重点是complete

  • 启动
systemctl enable docker
# output Created symlink /etc/systemd/system/multi-user.target.wants/docker.service, pointing to /usr/lib/systemd/system/docker.service.
systemctl start docker
# 报错 output Failed to get D-Bus connection: Operation not permitted 经过分析,因为当前虚机存在于docker,所以systemctl不可用,需要另作处理才可使用
# 解决办法
# 创建容器:

# docker run -d -name centos7 --privileged=true centos:7 /usr/sbin/init

# 进入容器:

# docker exec -it centos7 || 容器id /bin/bash
# 退出容器
exit

解决报错

解决docker启动错误 error creating overlay mount to /var/lib/docker/overlay2

https://blog.csdn.net/twj13162380953/article/details/116100297

解决删除容器时报资源繁忙

https://blog.csdn.net/ibless/article/details/81975725

高级知识

参数

接收外界参数

启动配置

修改端口

# 停止容器、停止Docker
cd /var/lib/docker/containers
# 按提示修改端口

操作

镜像

脚本

# 导出物理镜像
docker save -o qedis-v1.1.1.tar.gz qedis:v1.1.1
# 注入镜像
docker import qedis-v1.1.1.tar.gz qedis:v1.1.1

启停

systemctl stop docker
systemctl start docker

清理-慎用

# 清理容器-慎用
https://www.runoob.com/w3cnote/docker-clear-command.html

查看

网桥
brctl show
docker network ls # 正解
# 查看容器所在网桥
docker inspect id

删除

删除镜像
docker rmi 镜像id
删除网桥

状态

在这里插入图片描述
created:很明显基于镜像创建了容器,但是从未启动过

参数
  • 意义
意义说明示例
-e传递环境变量environment
-d在后台运行,并打印容器id可以出现多次
-hhostname
–restart自启 always:自启;no:不自启;–restart=no
–restart=always
–net连接到指定网络--net=bridge 这个是默认值,连接到默认的网桥
--net=host 告诉 Docker 不要将容器网络放到隔离的名字空间中,即不要容器化容器内的网络。此时容器使用本地主机的网络,它拥有完全的本地主机接口访问权限。容器进程可以跟主机其 它 root 进程一样可以打开低范围的端口,可以访问本地网络服务比如 D-bus,还可以让容器做一些影响整个主机系统的事情,比如重启主机。因此使用这个选项的时候要非常小心。如果进一步的使用 --privileged=true,容器会被允许直接配置主机的网络堆栈
--net=container:NAME_or_ID 让 Docker 将新建容器的进程放到一个已存在容器的网络栈中,新容器进程有自己的文件系统、进程列表和资源限制,但会和已存在的容器共享 IP 地址和端口等网络资源,两者进程可以直接通过 lo 环回接口通信
–net=none 让 Docker 将新容器放到隔离的网络栈中,但是不进行网络配置。之后,用户可以自己进行配置
参考文章
-v映射数据卷将宿主机目录映射到Docker Container-v /home/conf:/data/cfg:ro(加上:ro表示在容器内只读

)

更新 配置
  • 修改参数
docker update --restart=no 容器id
  • 修改配置文件参数

在这里插入图片描述

传参

查看传参

测试

报错
  • 进入容器报错,命令:
dockr exec -it 容器id /bin/bash

报错:

starting container process caused "exec: \"/bin/bash\": stat /bin/bash: no such file or directory": unknown

解决:
改为dockr exec -it 容器id sh

CentOS 7

安装地址 https://www.cnblogs.com/qinxu/p/10032176.html # 按这个教程安装成功了

CentOS 8 1905

  • 配置国内yum源
  • 安装完毕:
    在这里插入图片描述
  • hello-world
    *

Ubuntu18.04

安装

安装

在这里插入图片描述

# cat /etc/issue 查看版本
sudo apt install docker.io
docker --version # 检验安装是否有效

安装截图:
在这里插入图片描述
版本号截图:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

非root用户使用Docker
# If you would like to use Docker as a non-root user, you should now consider adding your user to the "docker" group with something like:
sudo usermod -aG docker notRootUser
# Remember that you will have to log out and back in for this to take effect! 
# 当要以非root用户可以直接运行docker时,需要执行 sudo usermod -aG docker notRootUser命令,然后重新登陆,否则会报错
国内镜像
{
  "registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
}
# 或
{
    "registry-mirrors": ["https://registry.docker-cn.com"]
}
# 拷贝上文镜像地址到这个json文件
sudo gedit /etc/docker/daemon.json
systemctl daemon-reload
systemctl restart docker
sudo docker info

get info后可以看到:
在这里插入图片描述

查看
  • 状态:
systemctl status docker

在这里插入图片描述

Demo

HelloWorld
# 先运行镜像,这个镜像本地不存在,且命令也不正确,权且试一下,看系统如何纠正。——系统自动下载了镜像
sudo docker run ubuntu hello world

在这里插入图片描述

# 执行HelloWorld
sudo docker run ubuntu /bin/echo hello world

Bingo!冇问题。
在这里插入图片描述

安装Go网关

在这里插入图片描述

常用命令

查看运行过的
sudo docker ps -a

在这里插入图片描述

# sudo docker start container_id 再执行一次
sudo docker start 4cf0ec150c1d # 这样执行看不到实时hello了,不过确实执行成功了
sudo docker logs 4cf0ec150c1d # 查看执行日志

执行后,out:

[zhangsan@localhost mysql]# docker start 3a8bfb748bf7
3a8bfb748bf7

在这里插入图片描述

Docker-Compose

  1. 概念
    Compose恰好满足了这样的需求。它允许用户通过一个单独的docker-compose.yml模板文件(YAML格式)来定义一组相关联的应用容器为一个项目(project)。
# 下载docker-compose
sudo curl -L https://github.com/docker/compose/releases/download/1.17.0/docker-compose -`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# https://gitee.com/mirrors/docker-compose
sudo curl -L https://gitee.com/mirrors/docker-compose -`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# 增加执行权限
sudo chmod +x /usr/local/bin/docker-compose
 
# 查看版本,正常显示就安装成功
docker-compose --version

Ubuntu 18 安装Curl注意事项待续

Ubuntu安装

  1. 系统命令安装
# 先执行命令查看有没安装compose
docker-compose --version

没有安装,但可以根据提示安装:
在这里插入图片描述
执行apt install docker-compose安装,结果失败了,输出日志↓

E: Failed to fetch http://mirrors.cloud.aliyuncs.com/ubuntu/pool/main/p/python-urllib3/python-urllib3_1.22-1ubuntu0.18.04.1
E: Failed to fetch http://mirrors.cloud.aliyuncs.com/ubuntu/pool/main/p/python-cryptography/python-cryptography_2.1.4-1ubun
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

安装失败了,再试一次,不行,那就试试安装包安装

  1. 安装包安装 高速下载docker-compose-Linux64版本1.27.2安装包

进入compose下载页面
或下载更加新的版本
检索docker-compose,拖到最底部
在这里插入图片描述
下载Linux版本,可能比较慢。高速下载docker-compose-Linux64版本1.27.2安装包
下载成功

# 进入快捷方式目录
cd /usr/local/bin

将文件拖拽到↑目录,授权:chmod +x docker-compose

# 检测是否安装成功
docker-compose --version
# or
docker-compose version

output:

docker-compose version 1.27.2, build
docker-py version: 4.3.1
CPython version: 3.7.7
OpenSSL version: OpenSSL 1.1.0l  10 Sep 2019

↑说明安装成功

使用

容器 Container

挂载数据卷

# 新建数据卷容器 用于多容器共享它
docker run -it -v /someData --name storageData ubuntu
# 共享数据卷
docker run -it --volumes-from storageData --name data1 ubuntu
# 火车挂载
docker run -d --name data9--volumes-from data1 xx/XXX
# 已经运行了,如何增加文件到容器
docker cp 宿主机文件 容器id:容器某目录
# 或者reverse
docker cp 容器id:容器某目录 宿主机文件 

解决报错

无权限创建目录

1、–privileged=true;
2、给宿主机目录开放权限。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值