当前位置: 首页 > news >正文

Docker的Ubuntu上的安装教程及相关命令

一、简介

Docker 是一个开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,这个容器是完全使用沙箱机制(限制容器内部对系统资源的访问),更重要的是容器性能开销极低。

正是因为Docker的各种特性,我们常用Docker来部署Web开发环境以及Web应用的发布。

二、安装教程

1、准备工作

不知道在干嘛,那就贴上去就完事了,注意docker的很多相关命令都需要管理员权限

(1)、更新软件包(有必要就换源)

sudo apt update
sudo apt upgrade

(2)、安装docker依赖

apt-get install ca-certificates curl gnupg lsb-releasev

(3)、添加Docker官方GPG密钥

curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg
sudo apt-key add -

(4)、添加Docker软件源

sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

2、安装

(1)、安装命令确实就一句话

apt-get install docker-ce docker-ce-cli containerd.io

(2)、配置用户组,需要重启生效

sudo usermod -aG docker $USER

三、相关命令

下面的命令会以hznuoj为例,替换为自己想要用的镜像即可

1、镜像相关命令

(1)、拉取镜像。命令可以从Docker Hub直接复制,使用冒号指定版本号(tag),没有默认最新

docker pull hznuoj/hznuoj:latest

(2)、启动镜像。参数配置如下:

  • -d 指定容器运行于前台还是后台,默认为false
  • -it 加上之后即不与启动的镜像交互(其实是 -i -t )
  • --restart=always 指定容器停止后的重启策略:
    • no:容器退出时不重启
    • on-failure:容器故障退出(返回值非零)时重启
    • always:容器退出时总是重启
  • -p 指定端口映射,即容器内的端口(冒号右侧)映射到主机(冒号左侧)

端口映射:端口映射就是将容器内主机的一个端口映射到容器外主机的一个端口,提供相应的服务。当用户访问容器外IP的这个端口时,自动将请求映射到容器内的机器上。

  • --name 启动的这个容器的名字,注意名字不能重复,即id
  • -v 路径挂载,将内容内部文件(冒号右侧)挂载到主机(冒号左侧),注意:如果本机没有对应的文件/文件夹,默认生成文件夹,所以挂载之前需要提前创建好

挂载:挂载后容器外部文件发生改变同步到容器内部,从而实现数据同步,方便进行Web开发

sudo docker run \-d -it \--name=hznuoj \--restart=always \-p 80:80 \-v /var/hznuoj/static.php:/var/www/web/OJ/include/static.php \-v /var/hznuoj/upload:/var/www/web/OJ/upload \-v /var/hznuoj/data:/var/hznuoj/data \hznuoj/hznuoj:latest

(3)查看镜像

docker images

(4)、删除镜像。 -f 即force强制删除

docker rmi 镜像名/镜像ID
docker rmi -f 镜像名/镜像ID

2、容器相关命令

镜像相当于一个对象,那么容器就是一个实例

(1)、查看当前正在运行的容器

docker ps

(2)、开始、暂停、重启容器

docker start 容器ID/容器名
docker stop 容器ID/容器名
docker restart 容器ID/容器名

(3)、文件拷贝

从容器外拷贝到容器内,从容器内拷贝到容器外均可

docker cp mysql:/tmp/db.sql ~/db.sql
docker cp ~/db.sql mysql:/tmp/db.sql

(4)、删除容器。注意删除之前需要先stop

docker stop 容器名/容器ID
docker rm 容器名/容器ID
docker rm -f 容器名/容器ID

(5)、进入、退出容器

docker exec -it 容器名/容器ID
exit

四、从本地上传到dockerhub

1、启动容器

2、登录

docker login

3、commit

docker commit hznuoj hznuoj:latest

4、打tag

docker tag hznuoj:latest dzy521/hznuoj:latest

5、push到dockerhub

docker push dzy521/hznuoj:latest

http://www.lryc.cn/news/327048.html

相关文章:

  • 一些常见的nacos问题和答案
  • 华为OD机22道试题
  • 什么是Prompt Tuning?
  • 正则表达式篇
  • CAST(columnA AS VARCHAR(255)) AS fieldA报错的问题
  • github加速神器!解决github巨慢的问题,并且能够加速下载!另外推荐GitKraken -- 超好用的 Git 可视化工具
  • Stable Diffusion XL之使用Stable Diffusion XL训练自己的AI绘画模型
  • 软件杯 深度学习 机器视觉 人脸识别系统 - opencv python
  • IDEA | 资源文件中文乱码问题解决
  • Linux系统使用Docker部署Portainer结合内网穿透实现远程管理容器和镜像
  • 【Git篇】复习git
  • [LitCTF 2023]程序和人有一个能跑就行了
  • 如何在群晖NAS搭建bitwarden密码管理软件并实现无公网IP远程访问
  • perl:获取同花顺数据--业绩快报,业绩公告
  • FPGA选型
  • centos系统的root密码忘记或失效的解决办法(超详细)
  • 【Android 源码】Android源码下载指南
  • MySQL数据库高级语句
  • 软件测试【理论基础】
  • 蓝桥杯每日一题(floyd算法)
  • 文心一言 VS 讯飞星火 VS chatgpt (224)-- 算法导论16.3 6题
  • flutter3_douyin:基于flutter3+dart3短视频直播实例|Flutter3.x仿抖音
  • VR全景赋能智慧农业,打造沉浸式种植体验平台
  • 百度文心一言(ERNIE bot)API接入Android应用
  • springboot基本使用八(mbatisplus+filter实现登录功能)
  • 蚂蚁庄园今天答案
  • 第5章 数据建模和设计
  • 牛客NC108 最大正方形【中等 动态规划 Java,Go,PHP】
  • C#学生信息成绩管理系统
  • 精品凉拌菜系列热卤系列课程