论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
云原生
›
ubuntu情况下docker容器详细安装利用
ubuntu情况下docker容器详细安装利用
傲渊山岳
金牌会员
|
2024-6-21 13:29:20
|
显示全部楼层
|
阅读模式
楼主
主题
702
|
帖子
702
|
积分
2106
一、简介
ubuntu下利用docker为相识决不同厂家的核板需要搭建不通的虚拟机交叉编译情况,利用docker就可以在一个虚拟机中完成多个核板的程序开发
本文记载本身的安装过程以及Docker下令的利用记载
二、ubuntu安装docker
1.删除旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc
复制代码
2.安装方法一
利用官方安装脚本安装
curl -fsSL https://test.docker.com -o test-docker.sh
sudo sh test-docker.sh
复制代码
3. 安装方法二(保举利用)
更新 apt 包索引,输入以下下令:
sudo apt-get update
复制代码
安装 apt 依靠包,用于通过 HTTPS 来获取仓库,输入以下下令
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
复制代码
添加 Docker 的官方 GPG 密钥,输入以下下令:
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 个字符,验证现在是否拥有带有指纹的密钥,输入以下下令:
sudo apt-key fingerprint 0EBFCD88
复制代码
利用以下指令设置稳定版仓库
sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \
$(lsb_release -cs) \
stable"
复制代码
安装 Docker Engine-Community
sudo apt-get update
复制代码
安装最新版本的 Docker Engine-Community 和 containerd,输入以下下令
sudo apt-get install docker-ce docker-ce-cli containerd.io
复制代码
4.运行Docker容器
启动docker服务
service docker start
复制代码
列出docker现有镜像
docker images
复制代码
设置docker服务开机自启
systemctl enable docker
复制代码
5. 设置docker加速器
中科大镜像加速器
https://docker.mirrors.ustc.edu.cn
复制代码
执行下面下令
sudo mkdir -p /etc/docker
复制代码
sudo tee /etc/docker/daemon.json <<-'EOF'{ "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn
"]}EOF
复制代码
sudo systemctl daemon-reload
sudo systemctl restart docker
复制代码
三、Docker镜像操作
1. 拉取镜像
docker image pull 镜像名称
复制代码
拉取最新版的 Ubuntu 镜像
docker pull ubuntu
docker pull ubuntu
:latest
复制代码
2. 检察本地镜像
docker images
复制代码
3. 删除镜像
docker image rm 镜像名或镜像id
复制代码
4. 镜像打标签
docker tag <镜像ID或名称> <新标签名>
复制代码
5. Dockerfile生成镜像
生成一个dockerfile文件
vim dockerfile
复制代码
################################################
#
#生成SSH服务的ubuntu镜像
#
################################################
#基于哪个镜像生成新的镜像
FROM ubuntu:20.04
#作者名
MAINTAINER oldzhai
#设置环境变量
ENV TZ Asia/Shanghai
ENV LANG zh_CN.UTF-8
#执行命令
#替换为阿里源
RUN sed -i 's#http://archive.ubuntu.com/#http://mirrors.aliyun.com/#' /etc/apt/sources.list \
&& sed -i 's#http://security.ubuntu.com/#http://mirrors.aliyun.com/#' /etc/apt/sources.list
#更新软件源并安装软件
#安装ssh服务
RUN apt-get update -y \
&& apt-get -y install iputils-ping \
&& apt-get -y install wget \
&& apt-get -y install net-tools \
&& apt-get -y install vim \
&& apt-get -y install openssh-server \
&& apt-get clean && rm -rf /tmp/* /var/lib/apt/lists/* /var/tmp/*
#设置密码
RUN echo 'root:root' |chpasswd
#允许root用户登入
RUN sed -ri 's/^#PermitRootLogin\s+.*/PermitRootLogin yes/' /etc/ssh/sshd_config
RUN sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config
#创建sshd目录
RUN mkdir /var/run/sshd
# 声明端口
EXPOSE 22
#开始ssh服务
CMD ["/usr/sbin/sshd", "-D"]
复制代码
利用当前目录的 Dockerfile 创建镜像,标签为 ubuntu_ssh:20.04
注:后面的 .表现当前目录
利用docker images
下令可以检察当前已有镜像
docker build -t ubuntu_ssh:20.04 .
复制代码
四、Docker容器操作
1. 获取镜像
如果我们本地没有 ubuntu 镜像,我们可以利用 docker pull 下令来载入 ubuntu 镜像:
docker pull ubuntu
复制代码
2. 启动容器
docker run -it ubuntu /bin/bash
//-v指定共享目录
docker run -itd --name ubuntu01 -v /root/test:/root ubuntu
//-p指定端口号 宿主机8088 容器内部是80
docker run -itd --name ubuntu01 -v /root/test:/root -p 8088:80 ubuntu
docker run -itd --name ubuntu01 -v /root/test:/root -p 127.0.0.1:8088:80 ubuntu
//-v 共享目录 将当前目录挂载到容器的/data
//-p 端口
docker run -v $(pwd):/data -p 1022:22 --hostname ubuntu01 --privileged -it --rm ubuntu:18.04 /bin/bash
复制代码
3. 退出
exit
复制代码
4. 检察全部的容器
docker ps -a
复制代码
5. 启动已停止运行的容器
//使用 docker start 启动一个已停止的容器
docker start b750bbbcfd88
//后台运行在大部分的场景下,我们希望 docker 的服务是在后台运行的,我们可以过 -d 指定容器的运行模式
docker run -itd --name ubuntu-test ubuntu /bin/bash
复制代码
6. 停止一个容器
docker stop <容器 ID>
复制代码
7. 重启容器
停止的容器可以通过 docker restart 重启
docker restart <容器 ID>
复制代码
8.进入容器
如果从这个容器退出,容器不会停止,这就是为什么保举大家利用 docker exec 的原因
docker exec -it 243c32535da7 /bin/bash
复制代码
如果从这个容器退出,会导致容器的停止
docker attach 1e560fca3906
复制代码
9. 导入导出容器
这种方式主要用于分享或迁移整个镜像,包括全部版本、标签和历史
导出:
docker save -o <保存路径>/myimage.tar myimage:latest
导入:
docker load -i <路径>/myimage.tar
复制代码
这种方式主要用于分享或迁移容器的当前状态。这不包括容器的历史或元数据,如情况变量,以是它常常用于对容器进行快照
导出:
docker export <容器ID> > mycontainer.tar
导入:
docker import mycontainer.tar
复制代码
10. 删除容器
删除容器利用 docker rm 下令:
docker rm -f 1e560fca3906
复制代码
下面的下令可以整理掉全部处于终止状态的容器
docker container prune
复制代码
11. 检察容器端口的映射
//bf08b7f2cd89 为容器的id
docker port bf08b7f2cd89
复制代码
12. 检察容器的日志
docker logs -f bf08b7f2cd89
复制代码
13. 一次性删除全部的运行容器
docker rm -f `docker ps -a
-q`
复制代码
14. 检察容器的信息
docker inspect 730fde4da6ac
//过滤只查询ip信息
docker inspect --format='{{.NetworkSettings.IPAddress}}' 730fde4da6ac
复制代码
五、Docker容器测试
1.利用中科大镜像加速器
上面设置了,可以直接跳过
sudo vim /etc/docker/daemon.json
复制代码
{ "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn
"]}
复制代码
重启 docker 服务
sudo systemctl restart docker
复制代码
2.把 Docker 设置为普通用户访问
//添加 docker 用户组,输入以下下令sudo groupadd docker//将登陆用户加入到 docker 用户组中sudo usermod -aG docker $USER//更新用户组(这一步非常重要)newgrp docker//重启 docker 服务sudo systemctl enable docker
sudo systemctl restart docker
复制代码
3.拉取ubuntu18.04镜像
sudo apt updatedocker pull ubuntu
:18.04
复制代码
4.运行镜像进入容器
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安装常用工具
apt update
apt install byobu vim-gtk inetutils-ping net-tools wget cpio unzip rsync xz-utils bc time
复制代码
过程中需要设置地区,选择亚洲上海:
6. 添加用户
设置超等用户
apt install sudo
复制代码
添加普通用户
visudo
复制代码
添加本身的用户名,保存并退出
oldzhai ALL=(ALL:ALL) ALL
复制代码
adduser oldzhai
复制代码
切换到普通用户
su oldzhai
复制代码
7. docker 文件的拷贝
//docker cp 主机的目录文件 容器运行id:容器路径
docker cp /home/topeet/topeet-qt5.14.2/ bc1d9b59bc0b:/home/topeet/project/
//容器文件 拷贝到虚拟机
docker cp bc1d9b59bc0b:/home/topeet/project/ /home/topeet/topeet-qt5.14.2/
复制代码
8. 安装ssh远程连接
行容器指定端口
-p 参数:容器的 22 端口映射到本机的 10022 端口
docker run -v $(pwd):/data -p 1022:22 --hostname ubuntu01 --privileged -it --rm ubuntu:18.04 /bin/bash
复制代码
安装ssh
apt update
apt-get install ssh
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
傲渊山岳
金牌会员
这个人很懒什么都没写!
楼主热帖
2022你不容错过的软件测试项目实战(we ...
K8S 性能优化 - K8S APIServer 调优 ...
2022年春节后这波疫情对于国内SAP咨询 ...
全球各类卫星遥感图像的下载方法汇总 ...
变量的定义和使用
gRPC之.Net6中的初步使用介绍
Java面向对象--接口和多态
kubernetes top查看内存CPU使用情况 ...
MySQL数据库-数据表
有效字母异位词
标签云
挺好的
服务器
快速回复
返回顶部
返回列表