首页 > 其他分享 >docker 简单使用

docker 简单使用

时间:2024-05-06 11:13:00浏览次数:23  
标签:bin 容器 简单 ubuntu myubuntu 使用 镜像 docker

@

目录

目前我使用docker的场景的并不多,主要用来:

  1. 隔离本机的系统及软件环境,防止编译或者部署操作影响到本机
  2. 快速部署及配置软件环境不拖后接下来的工作

操作系统: Linux (ubuntu,debian,kali)

一、 docker 安装

sudo apt install docker.io
# 将要运行docker的用户加入到docker组,否则每次运行都要加sudo
sudo adduser ${USER} docker
sudo systemctl restart docker
# 重启以启用配置
sudo reboot

二、docker 使用

1. docker pull 拉取镜像

#自己决定版本 ubuntu:18.04 也可以
docker pull ubuntu:22.04
22.04: Pulling from library/ubuntu
bccd10f490ab: Pull complete 
Digest: sha256:77906da86b60585ce12215807090eb327e7386c8fafb5402369e421f44eff17e
Status: Downloaded newer image for ubuntu:22.04
docker.io/library/ubuntu:22.04

2. docker run 后台运行

# 后台运行一个ubuntu镜像
docker run -itd --name myubuntu ubuntu /bin/bash
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
Digest: sha256:77906da86b60585ce12215807090eb327e7386c8fafb5402369e421f44eff17e
Status: Downloaded newer image for ubuntu:latest
80e76ce3c7d2099ecb153b441f813a4b6b59b56a837797ce7cc502b5ce9b883e

3. docker ps 查看容器运行状态

# 后台运行一个ubuntu镜像
docker ps -a
CONTAINER ID   IMAGE     COMMAND       CREATED              STATUS              PORTS     NAMES
80e76ce3c7d2   ubuntu    "/bin/bash"   About a minute ago   Up About a minute             myubuntu

4. docker exec 进入容器

使用 exec 选项,退出容器后,容器不会停止
若使用 docker attach myubunru 进入容器,退出容器后,容器会停止

# 使用容器的ID或者名字都可以
# docker exec -it 80e76ce3c7d2 /bin/bash
docker exec -it myubuntu /bin/bash
root@80e76ce3c7d2:/# ls
bin   dev  home  lib32  libx32  mnt  proc  run   srv  tmp  var
boot  etc  lib   lib64  media   opt  root  sbin  sys  usr
root@80e76ce3c7d2:/# cd
root@80e76ce3c7d2:~# ls
root@80e76ce3c7d2:~# 

5. exit 退出容器

直接使用Ctrl + "d" 也可以

exit

6. docker restar 重启容器

docker restart myubuntu

7. docker stop 停止运行容器

docker stop myubuntu

8. docker stop 启动容器

停止可能会花费一些时间

docker stop myubuntu

9. docker stop 删除容器

删除之前需要先停止,否则会报错误

docker stop myubuntu
docker rm myubuntu

10. docker cp 复制文件(夹)进出容器

复制到容器的具体那个路径自行选择 不一定要复制到根目录:myubuntu:/,如myubuntu:/root

# 复制进入容器
docker cp text.txt myubuntu:/

进入容器查看 test.log 在不在

docker exec -it myubuntu /bin/bash
# 从容器复制出来
docker cp myubuntu:/test.log .

三、Dockfile 简单使用

前面使用的是 DockerHub 中的 ubuntu 镜像,现在我们自己制作一个自定义的 ubuntu 镜像,里面预置了我们需要的软件包和一些其他的操作:

  • FROM 指定基础镜像,用于后续的指令构建。
  • RUN 在构建过程中在镜像中执行命令
  • COPY 将文件或目录复制到镜像中

1. 准备

mkdir docker
cd docker

在创建的 docker 目录创建两个文件Dockerfiletest.log
test.log 只是为了使用 COPY 指令,将当前目录的文件复制到容器中,并不是必须的

#Dockerfile
FROM ubuntu:22.04
RUN apt-get update -y \
	&& apt-get install -y \
	curl \
	python3 \
	git \
	wget
COPY ./test.log /
# 内容随意,只是为了复制
touch test.log

2. 开始构建镜像

docker build -t myubuntu_image .

3. 使用自定义镜像

docker run -itd --name myubuntu myubuntu_image /bin/bash
docker ps -a
CONTAINER ID   IMAGE            COMMAND       CREATED          STATUS         PORTS     NAMES
1682e4914501   myubuntu_image   "/bin/bash"   42 minutes ago   Up 1 minutes             myubuntu

进入容器查看,里面已经有了我们复制进来的 test.log
并且预先安装了软件包: git,wget,python3,curl

docker exec -it myubuntu /bin/bash
root@1682e4914501:/# ls
bin   dev  home  lib32  libx32  mnt  proc  run   srv  test.log  usr
boot  etc  lib   lib64  media   opt  root  sbin  sys  tmp       var

4. 删除自定义的镜像

docker stop myubuntu
docker rm myubuntu
docker rmi myubuntu_image
Untagged: myubuntu_image:latest
Deleted: sha256:2127b529978e4ba134be19464c53d08bd01b822592db5fcaac1a0da014b13c26
Deleted: sha256:b561c76ca42a2e699693af790f2ba3638e7c1ec358a8b150465cb7b09c2ee2bb
Deleted: sha256:d562f8ca3124f08ffc952a27ed85c45b3ff887d48a051415628af667141a1630
Deleted: sha256:56e82a00763a8f08487f56f3eded2d5acbc6f755b5e7efbf2fe7722a6c449e33

至此,docker简单使用已完成
能力一般,水平有限,希望能帮到您

标签:bin,容器,简单,ubuntu,myubuntu,使用,镜像,docker
From: https://www.cnblogs.com/Aaronlx/p/18174617

相关文章

  • 使用NSSM将.exe程序安装成windows服务
    1、下载NSSM:NSSM-theNon-SuckingServiceManager 2、cmd方式安装服务将下载的压缩包解压,找到nssm.exe,以管理员身份打开cmd,在cmd中定位到nssm.exe所在路径,执行nssminstall服务名: 按下enter键会自动弹出nssm的窗体: 在Application-ApplicationPath中选择你的可执行......
  • AP5127 是一款 PWM 工作模式,高效率、外围简单、内置功率管
    AP5121是一款外围电路简单的多功能平均电流型LED恒流驱动器,适用于宽电压范围的非隔离式大功率恒流LED驱动领域。芯片PWM端口支持超小占空比的PWM调光,可响应最小60ns脉宽。芯片采用我司专利算法,为客户提供最佳解决方案,最大限度地发挥灯具优势,以实现景观舞台灯高辉的调......
  • Docker-compose安装(Centos7)
    卸载原来的docker-composerm-rf/usr/local/bin/docker-composerm-rf/usr/bin/docker-compose下载docker-composecurl-L"https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname-s)-$(uname-m)"-o/usr/local/bin/docker-compos......
  • 基于Luckfox Pico的opencv使用UDP协议与ubuntu传输摄像头数据-小白进阶
    使用UDP传输opencv的mat数据并显示本教程适用于进阶的小白尝试先说一下背景吧,正在工作的我,突然间看到淘宝上有个很漂亮的价格还不错的linux小板子,遂买下。没错,工作太无聊以至于开始摸鱼学习~但奈何每天工作完回家就像躺着,所以板子到手都快半年了才开始研究实现了简陋的摄像头......
  • AP5121是一款外围电路简单的多功能平均电流型LED 恒流驱动器
    AP5121是一款外围电路简单的多功能平均电流型LED恒流驱动器,适用于宽电压范围的非隔离式大功率恒流LED驱动领域。芯片PWM端口支持超小占空比的PWM调光,可响应最小60ns脉宽。芯片采用我司专利算法,为客户提供最佳解决方案,最大限度地发挥灯具优势,以实现景观舞台灯高辉的调......
  • APS54087 是 一款外围电路简单的无频闪降压LED恒流驱动器
     APS54087是一款外围电路简单的无频闪降压LED恒流驱动器,芯片采用高压工艺,减少整个电路的发热量,提高效率。适用于6.5-80V电压范围的非隔离式大功率恒流LED驱动领域。LD端口支持模拟调光,调光范围0-1.8V,应用于大电流设置。LD端口接电容到地,可以设置软起动时间。 APS54087......
  • allure基本使用
    1.安装jdk,安装allure,安装allure-pytest2.基本使用  2.1运行测试案例并保存结果数据      pytest-s-q测试文件--alluredir=测试结果数据存放目录  2.2 allure将结果数据生成html报告(自动打开浏览器访问,端口随机)      allureserve ......
  • C# 使用ffmpeg读取监控视频流
    编译环境VisualStudio2022.NetFramework4.7.2x64需要开启允许不安全代码(项目属性->生成->允许不安全代码)之前使用OpenCVSharp写的一个拉流,在服务器上跑不起来。于是换了这个使用FFmpeg.AutoGen的。参考博文:用C#做一个拉流播放器-摇光Summer-博客园(cnblogs.com)......
  • 40.Vue UI组件简单整理
    以下版本:ElementPlus组件库首先基于Vue3的PC端开源UI组件库安装依赖[email protected]中导入并挂载模块importElementPlusfrom'element-plus'import'element-plus/dist/index.css'app.use(ElementPlus)app.mount('#app')注意注意这......
  • 使用 CSS columns 布局来实现自动分组布局
    最近在项目中碰到这样一个布局,有一个列表,先按照4*2的正常顺序排列,当超过8个后,会横向重新开始4*2的布局,有点像一个个独立的分组,然后水平排列,如下图中序号是 dom 序列,所以其实这这样的一个顺序很多同学可能会想到给子元素分组(通过 JS将原数组拆分组合成一个二维数......