首页 > 其他分享 >docker的基本操作;

docker的基本操作;

时间:2023-06-01 14:33:18浏览次数:45  
标签:容器 -- tag 基本操作 镜像 docker id

原生网址:https://zhuanlan.zhihu.com/p/351541570

 

首发于Liusy的日常笔记 切换模式 Docker使用指南

Docker使用指南

金箍孙大圣 金箍孙大圣 喜欢健身的程序员,欢迎关注公众号【上古伪神】  

上文简单介绍了docker,这边记录一下docker的使用。

一、Docker启停

1、启动docker

systemctl start docker

2、关闭docker

systemctl stop docker

3、重启docker

systemctl restart docker

 

二、运行docker应用程序

docker run --name 容器名字 --rm -it -p [ip:]主机端口:容器端口 镜像名称 [命令]

run命令:如果本地有镜像,则直接运行,如果本地没有 ,则需要去镜像仓库获取,默认是docker hub。

更多命令可以使用docker run --help查看。

部分常用参数解析:

1、指定容器名,如果缺省,则随机分配

--name 容器名

2、启动交互

i表示交互式,t表示终端 
-it

3、后台运行容器

-d

4、指定网络模式

--network:指定网络,连到同一个网络的容器可以互连

当需要多个程序互联组成一个app的话,需要指定网络模式为container

docker run --network=container:容器名或id 容器名[:tag]

5、配置dns

--dns=ip

例如:

docker run --dns=4.4.4.4

配置容器的搜索域

--dns-search=DOMAIN

当设定搜索域为 .http://example.com 时,在搜索一个名为 host 的主机时,DNS 不仅搜索 host,还会搜索 http://host.example.com。

6、设置容器的主机名

-h hostname
或
--h=hostname

7、指定映射宿主机端口

-p [ip:]宿主机端口:容器内部端口

例如:将容器内部80端口映射到宿主机8080端口

docker  run -p 8080:80 镜像名[:tag]

也可以使用,大写的P

-P

这样就是随机映射宿主机端口

8、容器停止后,自动删除容器

--rm

9、设置环境变量

-e key1=value1

 

 

也可从指定文件读取环境配置

--env-file=[]

10、设置运行的用户

-u 用户名

 

 

前提是容器内有这个用户

11、设置容器可使用的最大内存

-m 内存大小值

12、设置工作目录

-w 目录

13、绑定数据卷

-v [宿主机目录:]容器目录

如果只有一个目录,则是指定容器内的目录,此时会随机映射宿主机的目录。宿主机目录和容器目录里面的文件是共通的,也就是不论在哪一方添加修改文件,另一方都会感知。

 

也可以复用其他容器的卷的设置

-volumes-from 其他容器名或id

 

如果不绑定数据卷的话,在容器关闭的时候,数据也会随着容器死亡而删除,所以需要绑定数据卷将数据保存下来。

 

三、镜像使用

1、查看本地已有镜像

docker images

 

 

2、从docker hub中查找镜像

docker search 镜像名[:版本(也就是tag)]
例如:docker search nginx
     docker search nginx:1.19.1

例如查找nginx

 

 

其中的OFFICIAL表示是否是官方提供的,因为docker hub上有很多第三方提供的镜像。

3、拉取镜像

docker pull 镜像名[:版本(也就是tag)]

比如获取一个mysql,如果不带tag,默认拉取tag为latest的镜像

 

 

拉取下来之后,就可以在本地看到mysql镜像了

 

 

4、删除镜像

docker rmi 镜像名[:版本(也就是tag)]

例如删除名为a,tag为latest的镜像

 

 

5、设置镜像标签

docker tag 镜像id或者原镜像名:原tag 镜像名:tag
例如:将mysql改成first_mysql:first,mysql的镜像id为0d64f46acfd1
     docker tag 0d64f46acfd1 first_mysql:first
     或
     docker tag mysql:latest first_mysql:first

 

 

设置标签会新增一个镜像,原有镜像不会删除或更改

6、创建镜像

有两种方式:

  • 1、从已经创建的容器中更新镜像,并且提交这个镜像
  • 2、使用 Dockerfile 指令来创建一个新的镜像

注:这边先介绍第一种(命令涉及到容器使用,所以在容器使用小结解说命令),第二种Dockerfile单独一篇说

启动一个nginx,映射到宿主机的8080端口。然后访问nginx首页,默认是如下

(1)运行一个容器 docker run --name nginx -p 8080:80 -d nginx

 

 

我需要进入容器将其改成其他页面并保存为一个镜像。

(2)进入容器 docker exec -it nginx /bin/bash

在根目录下创建lsy目录,并创建lsy.html文件

 

 

(3)修改nginx.conf文件

因为镜像默认没有vim工具 ,所以需要先后执行如下两个命令

1、更新安装源,获取最新安装包
apt-get update
2、安装vim
apt-get install vim

1、修改配置文件,将首页设置为自定义的lsy.html。

 

 

2、提交容器

docker commit -m="描述信息" -a="镜像作者" 容器id 要创建的目标镜像名

 

 

3、启动新建的容器,访问首页

docker run -it -p 8080:80 -d --name my_nginx  my_own_nginx:v1.0

 

 

 

四、容器使用

1、查看容器

(1)运行中的

docker ps

 

 

(2)所有运行过或正在运行的容器

docker ps -a

 

 

(3)最新一次运行的容器

docker ps -l

 

 

2、启停容器

容器id、容器名获取如下:docker ps -a

 

 

(1)启动运行过的容器(也就是docker ps -a 获取的)

docker start 容器id或容器名

(2)停止正在运行的容器

docker stop 容器id或容器名
或
docker kill 容器id或容器名

(3)重启容器

docker restart 容器id或容器名

3、进入后台运行中的容器

#退出后,容器会停止
docker attach 容器id


#退出后,容器不会停止,推荐使用
#例如:docker exec -it 243c32535da7 /bin/bash
docker exec -it 容器id

4、导出和导入容器

(1)导出

docker export 容器id > 导出文件名.tar

 

 

 

(2)导入

docker import 镜像名称:版本

 

 

5、删除容器

docker rm -f 容器id或容器名

删除所有已经停止的容器

docker container prune

 

 

6、查看容器映射宿主机端口

docker port 容器id或容器名

 

 

7、查看容器日志

docker logs 容器id或容器名

 

 

8、查看容器进程id

docker top 容器id或容器名

 

 

9、查看容器全部信息

docker inspect 容器id或容器名

 

 

10、新建docker网络

docker network create -d docker网络类型 网络名称

-d:参数指定 Docker 网络类型

网络模式
配置
说明host–net=host
容器和宿主机共享Network namespace。container–net=container:容器名或id
容器和另外一个容器共享Network namespace。kubernetes中的pod就是多个容器共享一个Network namespace。none–net=none
容器有独立的Network namespace,但并没有对其进行任何网络设置,如分配veth pair 和网桥连接,配置IP等。bridge
–net=bridge(默认为该模式)

 

11、配置dns

可在主机上的/etc/docker/daemon.json文件增加如下内容来设置全部容器的DNS

{
  "dns" : [
    "114.114.114.114",
    "8.8.8.8"
  ]
}

设置后,启动容器的 DNS 会自动配置为 114.114.114.114 和 8.8.8.8。配置完,需要重启 docker 才能生效

查看DNS是否生效:

docker run -it 镜像名[:tag]  cat etc/resolv.conf

12、实时查看docker占主机cpu和内存信息

docker stats

 

 

===============================

我是Liusy,一个喜欢健身的程序员。

获取更多干货以及最新消息,请关注公众号:上古伪神

如果对您有帮助,点个关注就是对我最大的支持!!!

发布于 2021-02-19 22:10 Docker 容器云 容器虚拟化   写下你的评论...     1 条评论   默认 最新 游啊游 游啊游   全是我看不懂的 2021-02-22  

文章被以下专栏收录

Liusy的日常笔记 Liusy的日常笔记 数学很难,但是有趣~ 数学很难,但是有趣~ 数学、信息论、概率与矩阵

推荐阅读

docker的使用及原理

摘要: docker的使用及原理 如何在内网搭一个私人笔记 更多Docker学习内容: 点击此处阅读引子如何在内网搭一个私人笔记一步步搭建Leanote笔记使用docker什么是docker下面是从wikipedia和百…

阿里云云栖号 零基础docker学习笔记2:使用docker安装linux

零基础docker学习笔记2:使用docker安装linux

一只通信旺

Docker的使用(一)

最近要对之前做的项目部署到服务器上,python的库一个一个装实在是很麻烦,虽然可以通过 Pipfile来快速安装库,但是我还是嫌麻烦,刚好学点新知识吧,用容器来搞定部署。最重要的放最前面:…

码农76发表于生产力UP... Docker 入门终极指南,别再说不会用Docker了!

Docker 入门终极指南,别再说不会用Docker了!

小知发表于Java知...      

标签:容器,--,tag,基本操作,镜像,docker,id
From: https://www.cnblogs.com/xxbShare/p/17448898.html

相关文章

  • 百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 基于 Paddle Serving快速使用(服
    目录安装Docker安装PaddleOCR安装准备PaddleServing的运行环境,模型转换PaddleServingpipeline部署重启测试百度飞桨(PaddlePaddle)-PP-OCRv3文字检测识别系统预测部署简介与总览百度飞桨(PaddlePaddle)-PP-OCRv3文字检测识别系统PaddleInference模型推理(离线部署)......
  • mac docker 安装 kali linux
    先解决dockerpull慢的问题:解决dockerpull速度慢问题将docker镜像源修改为国内的:在 /etc/docker/daemon.json文件中添加以下参数(没有该文件则新建):mac{"registry-mirrors":["https://9cpn8tt6.mirror.aliyuncs.com"]}服务重启!记得是在docker的UIpreferrence里设置,然后重启......
  • 基于CentOS7系统Docker19.03.15离线安装
    一、离线安装(1)去官网下载docker安装二进制包,选择适合自己的版本。这里下载的是docker-19.03.15.tgz,下载地址:https://download.docker.com/linux/static/stable/x86_64/(2)将安装包上传至安装机器(3)解压tar-xfdocker-19.03.15.tgz(4)将解压后的文件移至/usr/bin/......
  • docker部署PaddleOCR流程
    先安装docker,输入docker-v后即可开始部署paddleocr1.容器环境使用ubuntu16.04dockerpullubuntu:16.042.启动容器使用-itd可以在后台运行正常-it就可以dockerrun-itd--name="paddleocr"ubuntu:16.04bash3.修改apt源(这里设置为清华源还不错)sed-i's/archive.ubun......
  • 防火墙和docker服务
    查看防火墙命令-----systemctlstatusfirewalldserviceiptablesstatus暂时关闭防火墙systemctlstopfirewalldserviceiptablesstop永久关闭防火墙systemctldisablefirewalldchkconfigiptablesoff重启防火墙systemctlenablefirewalldserviceiptablesresta......
  • docker 在线迁移文件存储位置
    本教程只适用Docker版本>=v17.05.0命令df-Th可以看到当前docker存储的路径迁移docker文件cp-a/var/lib/docker/sdb2/修改daemon.json文件"graph":"/sdb2/docker"[root@devops~]#vim/etc/docker/daemon.json{"graph":"/sdb2/docker",&......
  • docker-compose一键部署jdk+tomcat+jmeter+ant+jenkins测试环境
    1.编写DokcerfileFROMcentos:7MAINTAINERhuangkai<[email protected]>RUNyum-yinstallvim\&&yum-yinstallnet-tools\&&yuminstalldejavu-sans-fontsfontconfig-yADDjdk-11_linux-x64_bin.tar.gz/usr/local/ADDapache-tomcat-9.0......
  • kubernetes(k8s)大白学习02:容器和docker基础、使用、架构学习
    一、什么是容器容器简介简单说:容器(container)就是计算机上的一个沙盒进程,它与计算机上的所有其它进程相隔离。这种隔离是怎么做到的呢?它利用了内核提供的namespace和cgroup这2种技术。这些技术能力在Linux中已经存在了很长时间。而Docker或容器技术致力于将这些功能更......
  • [Docker] Container communcation
    ForexampleyouhavetwocontainersrunningContainerA:needtotalktoContainerBContainerB,runninganodeapplicationexportport1337 FromcontainerAdockercomposeexec-itcontainerAbashYoucanpingcontainerBnc-vcontainerB1337Tochec......
  • docker安装
    1.官方按照链接:https://docs.docker.com/engine/install/centos/    2.配置镜像加速器登录阿里云:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors?accounttraceid=e1892dba7dce4d22a171aa260e87de01ueuh  ......