前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Docker】docker的使用

【Docker】docker的使用

原创
作者头像
东风压倒西风
修改2022-11-16 08:14:21
9980
修改2022-11-16 08:14:21
举报
文章被收录于专栏:卓谷山

前几天构筑开发环境,使用了一些docker命令,随手记下来。

经常使用的命令

(bash>开头的操作为容器中,其他的均是在宿主机器上)

代码语言:shell
复制
# 下载rhel8的镜像文件
docker pull roboxes/rhel8  #获取镜像
docker images       #镜像一览
docker run -u root -it roboxes/rhel8 base  #启动(以root身份)
bash>cat /etc/redhat-release  #确认版本

docker ps #正在运行的容器列表
docker stop containerID #停止容器
docker exec -it 77xxx  /bin/bash  #进入正在运行的容器

bash>yum install -y vim #安装vim -y 指的是中途的确认都选yes
bash>yum clean all
bash>yum repolist #显示repo的list

bash>yum install java-1.8.0-openjdk  #安装 java
bash>java -version  #查看java版本

#保存操作
docker commit containerID imageName:version #imageName:version #由自己指定
例:
docker commit xxxx postgre:01 -m="for test" -a="liu" 

#导出镜像
docker save xxxxImageId> xxxx.tar  #将docker 镜像文件保持到tar中。
ls -sh xxxx.tar

#加载镜像
docker load --input xxxx.tar #加载tar文件

###宿主机和容器间相互复制文件/文件夹
docker ps /xxx/xxxx containerID:/xxx/xxx #宿主机->容器
docker ps containerID:/xxx/xxx /xxx/xxx #容器->宿主机

配置docker镜像源

linux

方法1

参考url:https://blog.csdn.net/weixin_42165508/article/details/111904560

方法2

  • 配置镜像 要在 /etc/docker/daemon.json 文件中定义一个镜像加速器(这是一个json格式的数组,这个文件需要自己创建)
代码语言:javascript
复制
  "registry-mirrors": [
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn",
    "https://hub.docker.com/"
  ]
 

windows

image.png
image.png

开始使用

  • 搜索镜像仓库。 比如要构建oracle19c的docker镜像。
代码语言:shell
复制
docker search oracle19c

得到如下结果:

NAME

DESCRIPTION

STARS

OFFICIAL

AUTOMATED

heartu41/oracle19c

Oracle 19.0.3 EE Docker Build For Test

9

......出现多条信息,后面的省略。

  • 拉取镜像
代码语言:shell
复制
dokcer pull heartu41/oracle19c

拉取可能会失败,失败后选取其他仓库。

  • 合并多个image到一个
代码语言:shell
复制
docker save -o xxx.tar  name1:tag1 name2:tag2 name3:tag3 
  • 解压docker load -i xxx.tar

注意:

这种方式load后无需改名,之前是什么名加载后就是什么名

Dockerfile的build

  • dockerfile的创建
  • build docker build -t 镜像名称:tag .

典型用法:

代码语言:javascript
复制
docker build  -t ImageName:TagName dir

选项

代码语言:txt
复制
* -t 给镜像加一个Tag
* ImageName 给镜像起的名称
* TagName 给镜像的Tag名
* Dir Dockerfile所在目录
  • run
image.png
image.png

可参考:【Docker】DockerFile与build命令_Mr.敦的私房菜的博客-CSDN博客_build dockerfile](https://blog.csdn.net/qq_41816702/article/details/125350798)

windows containers的执行

为了切换到windows containers,需要以管理员身份打开PowerShell终端,执行如下命令:

代码语言:text
复制
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

host.docker.internal的配置

windows docker安装了以后,会在

代码语言:javascript
复制
C:\Windows\System32\drivers\etc\hosts

中添加下面两行映射。

代码语言:txt
复制
# Added by Docker Desktop
127.0.0.1  host.docker.internal
127.0.0.1  gateway.docker.internal

docker容器中找不到ps命令

在docker容器中,执行类似下面的ps命令,报找不到ps的错。

代码语言:javascript
复制
ps -ef | grep postgresql

解决方法如下:

代码语言:javascript
复制
apt-get update && apt-get install procps

其他参考资料

End!!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 经常使用的命令
  • 配置docker镜像源
    • linux
      • 方法1
      • 方法2
    • windows
    • 开始使用
    • Dockerfile的build
    • windows containers的执行
    • host.docker.internal的配置
    • docker容器中找不到ps命令
    • 其他参考资料
    相关产品与服务
    容器服务
    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档