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

Docker安装及常用命令

Docker 相关概念

1. 什么是Docker

Docker 是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。
Docker 版本有 Ubuntu CentOS Debian mac Windows
Docker 像一个轻量级的虚拟机,但远比虚拟机本身占用次源少。

2. Docker Container(容器)

Docker 将宿主机隔离出来的一个个的空间。

3.Docker image (镜像)

特殊的文件系统,是对某一时刻容器关态的备份,就像 window Ghost 镜像。
镜像不包含任何动态数据,基内容在构建之后也不会被改变。

4.DockerRegistry(记录中心)

是官方及第三该机构提供的镱像下载仓库,如 maven 的中央仓库,把一些常用的容器打包成镜像,开
发者
可以直接中 registry 上下载镜像。

5.Docker运行原理

操作用户可以用 Docket 客户端完成以下操作:
通过客户端从 Registry 下载镜像。( pull
运行本地镜像,成为容器。( run
通过 Dockerfile 文件构建新的镜像。( build

docker安装

1. 由于 apt 官方库里的 docker 版本可能比较旧,所以先卸载可能存在的旧版本:
$ sudo apt-get remove docker docker-engine docker-ce docker.io
2. 更新 apt 包索引:
sudo apt-get update
3. 安装以下包以使 apt 可以通过 HTTPS 使用存储库( repository ):
sudo apt-get install -y apt-transport-https ca-certificates curl software
properties-common
4. 添加 Docker 官方的 GPG 密钥:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add
-
5. 使用下面的命令来设置 stable 存储库:
$ sudo add-apt-repository "deb [arch=amd64]
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
6. 再更新一下 apt 包索引:
$ sudo apt-get update
7. 安装最新版本的 Docker CE
$ sudo apt-get install -y docker-ce
8. 查看 docker 服务是否启动:
$ systemctl status docker
9. 若未启动,则启动 docker 服务:
$ sudo systemctl start docker
10. 经典的 hello world
$ sudo docker run hello-world

 配置阿里云远程仓库

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://8z4e1ukg.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
将用户 docker 用户组
sudo groupadd docker # 添加 docker 用户组
sudo gpasswd -a $USER docker # 将登陆用户加入到 docker 用户组中
newgrp docker # 更新用户组
docker ps # 测试 docker 命令是否可以使用 sudo 正常使用
安装 portainer 可视化界面
docker volume create portainer_data
docker run -d -p 9010:9000 -v /var/run/docker.sock:/var/run/docker.sock -v
portainer_data:/data portainer/portainer
切换root用户
sudo su root
安装apt
sudo apt install net-tools
安装ssh
sudo apt-get install openssh-server
docker 常用命令
查看 docker 版本 : docker --version
查看安装的镜像: docker images [NAME]
下载镜像: docker pull NAME[:TAG]
搜索可用的 docker 镜像: docker search NAME
比如获取最新的 centos 镜像: docker pull centos:latest
启动容器: docker start [ 容器 ID]
查看正在运行的容器: docker ps
查看最近生成的容器: docker ps -l
查看所有容器 ID docker ps -a -q
删除所有的容器: docker rm $(docker ps -a -q)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://8z4e1ukg.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo groupadd docker # 添加 docker 用户组
sudo gpasswd -a $USER docker # 将登陆用户加入到 docker 用户组中
newgrp docker # 更新用户组
docker ps # 测试 docker 命令是否可以使用 sudo 正常使用
docker volume create portainer_data
docker run -d -p 9010:9000 -v /var/run/docker.sock:/var/run/docker.sock -v
portainer_data:/data portainer/portainer
sudo su root
sudo apt install net-tools
sudo apt-get install openssh-server 删除单个镜像: docker rmi [ 镜像 ID]
制作镜像 (dockerfile)
内置命令
FROM :依赖的底层镜像
MAINTAINER :指定镜像创建者
ENV :设置环境变量
RUN :运行 shell 命令
COPY :将编译机本地文件拷贝到镜像文件系统中
EXPOSE :指定监听端口
ENTRYPOINT :预执行命令,创建容器并启动后才执行
创建 Dockerfile 文件(文件名称必须是 Dockerfile
FROM tomcat
MAINTAINER tiger
COPY scope.html /usr/local/tomcat/webapps/ROOT
EXPOSE 8080/tcp
执行命令生成镜像
docker build [OPTIONS] PATH|URL|.
OPTIONS 说明:
-t : 后面标示要创建的镜像名称
. : 代表 Dockerfile 所在的路径
根据镜像,生产 docker 容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS 说明:
-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-d: 后台运行容器,并返回容器 ID
-i: 以交互模式运行容器,通常与 -t 同时使用;
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--name="nginx-lb": 为容器指定一个名称;
--dns 8.8.8.8: 指定容器使用的 DNS 服务器,默认和宿主一致;
--dns-search example.com: 指定容器 DNS 搜索域名,默认和宿主一致;
-h "mars": 指定容器的 hostname
-e username="ritchie": 设置环境变量;
--env-file=[]: 从指定文件读入环境变量;
--cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定 CPU 运行;
-m : 设置容器使用内存最大值;
--net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
--link=[]: 添加链接到另一个容器;
--expose=[]: 开放一个端口或一组端口;
-p: 映射端口 8888:8080 前面为宿主机端口,后面是 tomcat 端口

http://www.kler.cn/a/412324.html

相关文章:

  • HCIA笔记4--VLAN划分
  • wordpress二开-WordPress新增页面模板-说说微语
  • 【山大909算法题】2014-T1
  • 人名分类器(nlp)
  • nodepad配置c/c++ cmd快速打开创建项目文件
  • Git Gui 窗口无法显示
  • 信息安全实验--密码学实验工具:CrypTool
  • Rust学习(九):密码生成器
  • QT:生成二维码 QRCode
  • AIGC学习笔记(7)——AI大模型开发工程师
  • LeetCode题练习与总结:第三大的数--414
  • 【设计模式】【行为型模式(Behavioral Patterns)】之责任链模式(Chain of Responsibility Pattern)
  • 极狐GitLab 17.6 正式发布几十项与 DevSecOps 相关的功能【二】
  • 【力扣】125. 验证回文串
  • 集成金蝶云星空数据至MySQL的完整案例解析
  • 【es6】原生js在页面上画矩形及删除的实现方法
  • 【Linux】基础IO-文件描述符
  • 【Linux学习】【Ubuntu入门】2-5 shell脚本入门
  • CentOS 环境使用代理下载数据失败-EOF occurred in violation of protocol (_ssl.c:1002)
  • 自主研发,基于PHP+ vue2+element+ laravel8+ mysql5.7+ vscode开发的不良事件管理系统源码,不良事件管理系统源码
  • 一篇文章了解Linux
  • react项目初始化配置步骤
  • 关于 Android LocalSocket、LocalServerSocket
  • C++中虚继承为什么可以解决菱形继承的数据冗余问题
  • EasyAnimate:基于Transformer架构的高性能长视频生成方法
  • LeetCode 2924. Find Champion II