ubuntu情况下docker容器详细安装利用

打印 上一主题 下一主题

主题 702|帖子 702|积分 2106

一、简介



  • ubuntu下利用docker为相识决不同厂家的核板需要搭建不通的虚拟机交叉编译情况,利用docker就可以在一个虚拟机中完成多个核板的程序开发
  • 本文记载本身的安装过程以及Docker下令的利用记载

二、ubuntu安装docker

1.删除旧版本

  1. sudo apt-get remove docker docker-engine docker.io containerd runc
复制代码
2.安装方法一

利用官方安装脚本安装
  1. curl -fsSL https://test.docker.com -o test-docker.sh
  2. sudo sh test-docker.sh
复制代码

3. 安装方法二(保举利用)


  • 更新 apt 包索引,输入以下下令:
    1. sudo apt-get update
    复制代码
  • 安装 apt 依靠包,用于通过 HTTPS 来获取仓库,输入以下下令
    1. sudo apt-get install \
    2. apt-transport-https \
    3. ca-certificates \
    4. curl \
    5. gnupg-agent \
    6. software-properties-common
    复制代码
  • 添加 Docker 的官方 GPG 密钥,输入以下下令:
    1. curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
    复制代码
  • 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 通过搜索指纹的后 8 个字符,验证现在是否拥有带有指纹的密钥,输入以下下令:
    1. sudo apt-key fingerprint 0EBFCD88
    复制代码
  • 利用以下指令设置稳定版仓库
    1. sudo add-apt-repository \
    2. "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \
    3. $(lsb_release -cs) \
    4. stable"
    复制代码
  • 安装 Docker Engine-Community
    1. sudo apt-get update
    复制代码
  • 安装最新版本的 Docker Engine-Community 和 containerd,输入以下下令
    1. sudo apt-get install docker-ce docker-ce-cli containerd.io
    复制代码
4.运行Docker容器



  • 启动docker服务
    1. service docker start
    复制代码
  • 列出docker现有镜像
    1. docker images
    复制代码
  • 设置docker服务开机自启
    1. systemctl enable docker
    复制代码
5. 设置docker加速器

中科大镜像加速器
  1. https://docker.mirrors.ustc.edu.cn
复制代码
执行下面下令
  1. sudo mkdir -p /etc/docker
复制代码
  1. sudo tee /etc/docker/daemon.json <<-'EOF'{    "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn
  2. "]}EOF
复制代码
  1. sudo systemctl daemon-reload
  2. sudo systemctl restart docker
复制代码
三、Docker镜像操作

1. 拉取镜像

  1. docker image pull 镜像名称
复制代码
拉取最新版的 Ubuntu 镜像
  1. docker pull ubuntu
  2. docker pull ubuntu
  3. :latest
复制代码
2. 检察本地镜像

  1. docker images
复制代码

3. 删除镜像

  1. docker image rm 镜像名或镜像id
复制代码
4. 镜像打标签

  1. docker tag <镜像ID或名称> <新标签名>
复制代码
5. Dockerfile生成镜像

生成一个dockerfile文件
  1. vim dockerfile
复制代码
  1. ################################################
  2. #
  3. #生成SSH服务的ubuntu镜像
  4. #
  5. ################################################
  6. #基于哪个镜像生成新的镜像
  7. FROM ubuntu:20.04
  8. #作者名
  9. MAINTAINER oldzhai
  10. #设置环境变量
  11. ENV TZ Asia/Shanghai
  12. ENV LANG zh_CN.UTF-8
  13. #执行命令
  14. #替换为阿里源
  15. RUN sed -i 's#http://archive.ubuntu.com/#http://mirrors.aliyun.com/#' /etc/apt/sources.list \
  16.     && sed -i 's#http://security.ubuntu.com/#http://mirrors.aliyun.com/#' /etc/apt/sources.list
  17. #更新软件源并安装软件
  18. #安装ssh服务
  19. RUN apt-get update -y \
  20.     && apt-get -y install iputils-ping \
  21.     && apt-get -y install wget \
  22.     && apt-get -y install net-tools \
  23.     && apt-get -y install vim \
  24.     && apt-get -y install openssh-server \
  25.     && apt-get clean && rm -rf /tmp/* /var/lib/apt/lists/* /var/tmp/*
  26. #设置密码
  27. RUN echo 'root:root' |chpasswd
  28. #允许root用户登入
  29. RUN sed -ri 's/^#PermitRootLogin\s+.*/PermitRootLogin yes/' /etc/ssh/sshd_config
  30. RUN sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config
  31. #创建sshd目录
  32. RUN mkdir /var/run/sshd
  33. # 声明端口
  34. EXPOSE 22
  35. #开始ssh服务
  36. CMD ["/usr/sbin/sshd", "-D"]
复制代码
利用当前目录的 Dockerfile 创建镜像,标签为 ubuntu_ssh:20.04
注:后面的 .表现当前目录
利用docker images

下令可以检察当前已有镜像
  1. docker build -t ubuntu_ssh:20.04 .
复制代码


四、Docker容器操作

1. 获取镜像

如果我们本地没有 ubuntu 镜像,我们可以利用 docker pull 下令来载入 ubuntu 镜像:
  1. docker pull ubuntu
复制代码
2. 启动容器

  1. docker run -it ubuntu /bin/bash
  2. //-v指定共享目录
  3. docker run -itd --name ubuntu01 -v /root/test:/root ubuntu
  4. //-p指定端口号 宿主机8088 容器内部是80
  5. docker run -itd --name ubuntu01 -v /root/test:/root -p 8088:80 ubuntu
  6. docker run -itd --name ubuntu01 -v /root/test:/root -p 127.0.0.1:8088:80 ubuntu
  7. //-v 共享目录 将当前目录挂载到容器的/data
  8. //-p 端口
  9. docker run -v $(pwd):/data -p 1022:22 --hostname ubuntu01 --privileged -it --rm ubuntu:18.04 /bin/bash
复制代码
3. 退出

  1. exit
复制代码
4. 检察全部的容器

  1. docker ps -a
复制代码
5. 启动已停止运行的容器

  1. //使用 docker start 启动一个已停止的容器
  2. docker start b750bbbcfd88
  3. //后台运行在大部分的场景下,我们希望 docker 的服务是在后台运行的,我们可以过 -d 指定容器的运行模式
  4. docker run -itd --name ubuntu-test ubuntu /bin/bash
复制代码
6. 停止一个容器

  1. docker stop <容器 ID>
复制代码
7. 重启容器

停止的容器可以通过 docker restart 重启
  1. docker restart <容器 ID>
复制代码
8.进入容器

如果从这个容器退出,容器不会停止,这就是为什么保举大家利用 docker exec 的原因
  1. docker exec -it 243c32535da7 /bin/bash
复制代码
如果从这个容器退出,会导致容器的停止
  1. docker attach 1e560fca3906
复制代码
9. 导入导出容器

这种方式主要用于分享或迁移整个镜像,包括全部版本、标签和历史
  1. 导出:
  2. docker save -o <保存路径>/myimage.tar myimage:latest
  3. 导入:
  4. docker load -i <路径>/myimage.tar
复制代码
这种方式主要用于分享或迁移容器的当前状态。这不包括容器的历史或元数据,如情况变量,以是它常常用于对容器进行快照
  1. 导出:
  2. docker export <容器ID> > mycontainer.tar
  3. 导入:
  4. docker import mycontainer.tar
复制代码
10. 删除容器

删除容器利用 docker rm 下令:
  1. docker rm -f 1e560fca3906
复制代码
下面的下令可以整理掉全部处于终止状态的容器
  1. docker container prune
复制代码
11. 检察容器端口的映射

  1. //bf08b7f2cd89 为容器的id
  2. docker port bf08b7f2cd89
复制代码
12. 检察容器的日志

  1. docker logs -f bf08b7f2cd89
复制代码
13. 一次性删除全部的运行容器

  1. docker rm -f `docker ps -a
  2. -q`
复制代码
14. 检察容器的信息

  1. docker inspect 730fde4da6ac
  2. //过滤只查询ip信息
  3. docker inspect --format='{{.NetworkSettings.IPAddress}}' 730fde4da6ac
复制代码

五、Docker容器测试

1.利用中科大镜像加速器

上面设置了,可以直接跳过
  1. sudo vim /etc/docker/daemon.json
复制代码
  1. {    "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn
  2. "]}
复制代码
重启 docker 服务
  1. sudo systemctl restart docker
复制代码
2.把 Docker 设置为普通用户访问

  1. //添加 docker 用户组,输入以下下令sudo groupadd docker//将登陆用户加入到 docker 用户组中sudo usermod -aG docker $USER//更新用户组(这一步非常重要)newgrp docker//重启 docker 服务sudo systemctl enable docker
  2. sudo systemctl restart docker
复制代码
3.拉取ubuntu18.04镜像

  1. sudo apt updatedocker pull ubuntu
  2. :18.04
复制代码
4.运行镜像进入容器

  1. docker container run -p 8000:3000 -it ubuntu:18.04 /bin/bash
复制代码
  -p 参数:容器的 3000 端口映射到本机的 8000 端口。
-it 参数:容器的 Shell 映射到当前的 Shell,然后你在本机窗口输入的下令,就会传
入容器。
ubuntu:18.04:image 文件的名字
/bin/bash:容器启动以后,内部第一个执行的下令。这里是启动 Bash,包管用户可以使
用 Shell。

  5. Docker安装常用工具

  1. apt update
  2. apt install byobu vim-gtk inetutils-ping net-tools wget cpio unzip rsync xz-utils bc time
复制代码

过程中需要设置地区,选择亚洲上海:


6. 添加用户

设置超等用户
  1. apt install sudo
复制代码
添加普通用户
  1. visudo
复制代码
添加本身的用户名,保存并退出
  1. oldzhai ALL=(ALL:ALL) ALL
复制代码

  1. adduser oldzhai
复制代码

切换到普通用户
  1. su oldzhai
复制代码

7. docker 文件的拷贝

  1. //docker cp 主机的目录文件 容器运行id:容器路径
  2. docker cp /home/topeet/topeet-qt5.14.2/ bc1d9b59bc0b:/home/topeet/project/
  3. //容器文件 拷贝到虚拟机
  4. docker cp bc1d9b59bc0b:/home/topeet/project/ /home/topeet/topeet-qt5.14.2/
复制代码
8. 安装ssh远程连接

行容器指定端口
  1. -p 参数:容器的 22 端口映射到本机的 10022 端口
  2. docker run -v $(pwd):/data -p 1022:22 --hostname ubuntu01 --privileged -it --rm ubuntu:18.04 /bin/bash
复制代码
安装ssh
  1. apt update
  2. apt-get install ssh
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

傲渊山岳

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表