docker入门教程(搭建docker看)
Posted 辉常努腻
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker入门教程(搭建docker看)相关的知识,希望对你有一定的参考价值。
Docker
查看系统内核和系统信息
命令:
uname -r #查看系统内核版本
cat /etc/os-release #查看系统版本
1. 开始安装Docker
1.1.卸载旧版本
命令:
yum remove docker \\
docker-client \\
docker-client-latest \\
docker-common \\
docker-latest \\
docker-latest-logrotate \\
docker-logrotate \\
docker-engine
1.2.下载依赖安装包
yum install -y yum-utils
1.3. 配置镜像仓库
#国外的地址
yum-config-manager \\
--add-repo \\
https://download.docker.com/linux/centos/docker-ce.repo
# 设置阿里云的Docker镜像仓库
yum-config-manager \\
--add-repo \\
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
1.4 更新yum软件包
yum makecache fast
1.5.下载docker
yum install docker-ce docker-ce-cli containerd.io # 安装社区版
yum install docker-ee docker-ee-cli containerd.io # 安装企业版
一般情况下安装社区版
可能发生的错误:
Cannot find a valid baseurl for repo: base/7/x86_64
一般是因为网络出的问题,重启网卡解决
2.启动Docker
命令:
systemctl start docker # 启动Docker
docker version # 查看当前版本号,是否启动成功
systemctl enable docker # 设置开机自启动
2.1.Docker的HelloWorld
pull hello-world
docker pull hello-world
运行命令:
docker run hello-world
2.2.Docker卸载
yum remove docker-ce docker-ce-cli containerd.io # 卸载依赖
rm -rf /var/lib/docker # 删除资源 . /var/lib/docker是docker的默认工作路径
2.3.[docker中使用centos7镜像 ]
2.3.1下载centos7
docker pull centos:centos7
2.4运行centos镜像
docker run -d -i -t -h master --name master --privileged=true <imageID> /usr/sbin/init
docker run --help 运行命令提示
run 运行示例
-d 在后台运行容器并打印容器ID
-i 设置容器的元数据 即使未连接STDIN(标准输入)也保持打开状态,分配一个交互终端
-t 作用是分配一个虚拟的终端,我的理解就是,有了-t参数,这个docker就会被分配一个终端,在docker中启动bash就会有提示符
-h 给容器添加主机名
--name 容器名字
--privileged=true 获取宿主机root权限(特殊权限-)
/usr/sbin/init 启动容器之后可以使用systemctl方法
/usr/sbin/init 这样就能启动一个一直停留在后台运行的Centos了。如果少了/bin/bash的话,Docker会生成一个Container但是马上就停止了,不会一直运行即使有了-d参数。
2.5进入容器
Docker attach
Docker attach可以attach到一个已经运行的容器的stdin,然后进行命令执行的动作。
但是需要注意的是,如果从这个stdin中exit,会导致容器的停止。
Docker exec 推荐使用
关于-i、-t参数
可以看出只用-i时,由于没有分配伪终端,看起来像pipe执行一样。但是执行结果、命令
返回值都可以正确获取
使用-it时,则和我们平常操作console界面类似。而且也不会像attach方式因为退出,导致
整个容器退出。
这种方式可以替代ssh或者nsenter、nsinit方式,在容器内进行操作。
如果只使用-t参数,则可以看到一个console窗口,但是执行命令会发现由于没有获得stdin
的输出,无法看到命令执行情况。
docker exec执行后,会命令执行返回值。(备注Docker1.3似乎有Bug,不能正确返回命令执行结果)
容器操作错误
ifconfig
bash: ifconfig: command not found
配置net-tools
yum install -y net-tools
4.伪分布式搭建环境
4.1容器
4.1.1创建三个容器
docker run -itd -h master --name master --privileged=true centos:centos7 /usr/sbin/init
4.1.2查看三个ip
docker inspect master
docker inspect slave1
docker inspect slave2
4.1.3进入master
docker exec -it master bash
4.1.4安装ssh
yum install openssh-clients
yum install openssh-server
systemctl start sshd
4.1.5打包自己的镜像
docker commit -a liyahui -m baseContainer master licentos
4.1.6使用自己的镜像
docker run -itd -h slave1 --name slave1 --privileged=true licentos /usr/sbin/init
docker run -itd -h slave2 --name slave2 --privileged=true licentos /usr/sbin/init
4.2镜像
4.2.1导出镜像
docker save -o <保存路径> <镜像名称:标签>
docker save -o ./ubuntu18.tar ubuntu:18.04
4.2导入镜像
此时,把A机当前文件夹下的ubuntu18.tar拷贝到另一台安装过docker的B机上,在B机上导入镜像:
docker load --input ./ubuntu18.tar
docker load -i ubuntu18.tar
4.2.3使用数据卷
方式一:直接使用命令来挂载 -v
docker run -it -v 主机目录:容器内目录
#测试
docker run -it -v /home/ceshi:/home centos /usr/sbin/init
5.配置阿里云镜像
5.1 进入阿里云官网,搜索容器镜像服务
5.2 执行命令
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
"registry-mirrors": ["https://axvfsf7e.mirror.aliyuncs.com"]
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
6.Docker常用命令
命令的帮助文档地址:https://docs.docker.com/engine/reference/commandline/docker/
6.1基本命令
命令:
docker version #查看docker的版本信息
docker info #查看docker的系统信息,包括镜像和容器的数量
docker 命令 --help #帮助命令(可查看可选的参数)
docker COMMAND --help
6.2 docker search 搜索镜像
以上是关于docker入门教程(搭建docker看)的主要内容,如果未能解决你的问题,请参考以下文章