docker启动完美容器的过程
这里是我用docker启动所有常见的容器完美的过程,就是一次创建,后面就可以一直使用
文档:
我认为的创建容器并不是简简单单的拉镜像,创建一个不完整的容器就草草了事的,而是以完美的形态,搭建端口号,创建挂载目录,把容器变的像本机的软件一样的存在
这里就简单讲一下docker的基本命令,毕竟你们点开了这篇博客,不能让你们空手回去
docker images 查看所有本地的主机的镜像
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest feb5d9fea6a5 17 months ago 13.3kB
hello-world latest feb5d9fea6a5 17 months ago 13.3kB
#解释:
REPOSITORY 镜像的仓库源
TAG 镜像的标签
IMAGE ID 镜像的id
CREATED 镜像的创建时间
SIZE 镜像的大小
#可选项:
Options:
-a, --all #列出所有的镜像
-q, --quiet #只显示镜像的ID
docker search 搜索镜像
[root@localhost ~]# docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 13878 [OK]
mariadb MariaDB Server is a high performing open sou… 5291 [OK]
#可选项
--filter =stars =3000 搜索出来的镜像就是stars大于三千的
[root@localhost ~]# docker search mysql --filter=stars=10000
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 13878 [OK]
docker pull 下载镜像
#下载镜像 docker pull mysql [:tag](版本)
[root@localhost ~]# docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
b4ddc423e046: Pull complete
b338d8e4ffd1: Pull complete
b2b1b06949ab: Pull complete
daf393284da9: Pull complete
1cb8337ae65d: Pull complete
f6c2cc79221c: Pull complete
4cec461351e0: Pull complete
ab6bf0cba08e: Pull complete
8df43cafbd11: Pull complete
c6d0aac53df5: Pull complete
b24148c7c251: Pull complete
Digest: sha256:d8dc78532e9eb3759344bf89e6e7236a34132ab79150607eb08cc746989aa047
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest #真实地址
#两个命令是等价的
docker pull mysql
docker pull docker.io/library/mysql:latest
#指定版本下载
[root@localhost ~]# docker pull mysql:5.7.41
5.7.41: Pulling from library/mysql
e048d0a38742: Pull complete
c7847c8a41cb: Pull complete
351a550f260d: Pull complete
8ce196d9d34f: Pull complete
17febb6f2030: Pull complete
d4e426841fb4: Pull complete
fda41038b9f8: Pull complete
f47aac56b41b: Pull complete
a4a90c369737: Pull complete
97091252395b: Pull complete
84fac29d61e9: Pull complete
Digest: sha256:8cf035b14977b26f4a47d98e85949a7dd35e641f88fc24aa4b466b36beecf9d6
Status: Downloaded newer image for mysql:5.7.41
docker.io/library/mysql:5.7.41
docker rml 删除镜像
[root@localhost ~]# docker rmi -f be16cf2d832a
Untagged: mysql:5.7.41
Untagged: mysql@sha256:8cf035b14977b26f4a47d98e85949a7dd35e641f88fc24aa4b466b36beecf9d6
Deleted: sha256:be16cf2d832a9a54ce42144e25f5ae7cc66bccf0e003837e7b5eb1a455dc742b
Deleted: sha256:2dd6e094d35f48086adcdff89f36c9be8166fbbda0775b72efd9b12788a400a0
Deleted: sha256:01de218cde8a6eef7c19083f1a9dfdcc10e656651137c5083c8e8b293561e674
Deleted: sha256:84e3163c39fc29722fbea1461bc279bafc9d2da5937b1f4e5db6e08c6f08e3b4
Deleted: sha256:2b39b403c72a380afa25629a8b0af21e5bd33b071985740242e63856e6453359
Deleted: sha256:bf76a072ee83eef013d21ef4aed92cea89f1d15edd62ce0d4204268f513a2658
Deleted: sha256:8112761750f4100814858c647189c97db4129852fec2060580625254fa9b3440
Deleted: sha256:a527ebda1c7ee77668ecfec84a62ba7cc46769946fb565ff7895f2a0aecfd082
Deleted: sha256:ba8f679e76a9faba19756857e6f5d6809d8ba0a90507c6a815f3823244636e64
Deleted: sha256:51b0a4dc7d8cdf87950abd409fe3155df9118e4b33a1bbe91d6367d62557db87
Deleted: sha256:f3277814332978b36b309d241f692a182e37564d96a94fdde0382cb471953483
Deleted: sha256:c233345f327a72c79e2e19c75fcf9089a0c1488dfb66dd00d49fa2a5d1f76057
#docker rmi -f $(docker images -aq) #删除全部的容器
容器命令
说明: 我们有了镜像才可以创建容器,linux,下载一个CentOS镜像来测试学习
docker pull centos
新建容器并启动
docker run [可选参数] image
# 参数说明
--name="Name" 容器名字 tomcat001 tomcat002 ,用来区分容器
-d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
-p 指定容器的端口 -p 8080:8080
-p ip:主机端口:容器端口
-p 主机端口:容器端口 (常用的)
-p 容器端口
容器端口
-P 随机指定端口
#测试,启动并进入容器
[root@localhost ~]# docker run -it centos /bin/bash
[root@f77cf5efff07 /]# ls #查看容器内的centos,基础版本,很多命令都是不完善的
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
#进入容器
[root@localhost home]# docker run -it baecb060a464 /bin/bash
#从容器中退出主机
[root@f77cf5efff07 /]# exit
exit
[root@localhost ~]# ls
anaconda-ks.cfg cmake01 GameBookServer mysql80-community-release-el7-7.noarch.rpm redis-6.0.16 (3).tar.gz test.c 模板 图片 下载 桌面
bianyi cmake02 jdk-18_linux-x64_bin.rpm redis-6.0.16 test 公共 视频 文档 音乐
列出所有的运行的容器
#docker ps 命令
#列出当前正在运行的容器
-a #列出当前正在运行的容器+带出历史运行过的容器
-n=? #显示最近创建的容器
-q #只显示容器的编号
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f77cf5efff07 centos "/bin/bash" 7 minutes ago Exited (0) 2 minutes ago gifted_lehmann
06a28682bc04 feb5d9fea6a5 "/hello" 2 hours ago Exited (0) 2 hours ago reverent_khorana
aac81cb05c0d feb5d9fea6a5 "/hello" 2 weeks ago Exited (0) 2 weeks ago infallible_bassi
退出容器
exit #直接容器停止并退出
Ctrl +P +Q #容器不停止退出
[root@localhost ~]# docker run -it centos /bin/bash
[root@0d56e07d34d8 /]# [root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0d56e07d34d8 centos "/bin/bash" 20 seconds ago Up 19 seconds intelligent_jang
[root@localhost ~]#
删除容器
docker rm 容器id #删除指定的容器,不能删除正在运行的容器,如果要强制删除 rm -f
docker rm -f $(docker ps -aq) #删除所有的容器
docker rm $(docker ps -aq) #删除所有的容器
启动和停止容器的操作
docker start 容器id #启动容器
docker restart 容器id #重启容器
docker stop 容器id #停止当前正在运行的容器
docker kill 容器id #强制停止当前容器
常用的其他命令
后台启动容器
# 命令 docker run -d 镜像名 !
[root@localhost ~]# docker run -d centos
# 问题docker ps 发现centos停止了
#常见的坑 ,docker 容器启动后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止
#nginx,容器启动后,发现自己没有提供服务,就会立刻停止,没有程序了
docker run -p 3303:3306 --name mysql-master \
-v /mydata/mysql-master/log:/var/log/mysql \
-v /mydata/mysql-master/data:/var/lib/mysql \
-v /mydata/mysql-master/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
查看日志命令
docker logs -f --tail
#自己写一个shell脚本
[root@localhost ~]# docker run -d centos /bin/sh -c "while true;do echo caoyanglin ;sleep 1;done"
#展示出服务器id
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
08504c38c87e centos "/bin/sh -c 'while t…" 10 seconds ago Up 9 seconds thirsty_almeida
#显示日志
-tf #显示的日志
--tail number #要显示的日志条数
[root@localhost ~]# docker logs -tf --tail 10 08504c38c87e
查看容器中进程信息 ps
[root@localhost ~]# docker top 08504c38c87e
UID PID PPID C STIME TTY
root 20400 20380 0 18:40 ?
root 22335 20400 0 18:55 ?
docker启动完美容器的过程的更多相关文章
- docker-compose docker启动工具,容器互联
简介: docker可以一条命令就运行一个配置好的服务器,很是方便. 但是也有一个问题就是,当参数比较多,映射目录比较多,映射端口比较多………… 我以前就是写个脚本,用脚本来启动,很low啊. 也见到 ...
- docker 启动redis容器
dockerfile FROM registry.cn-hangzhou.aliyuncs.com/xxxholic/redis COPY redis.conf EXPOSE redis.conf p ...
- docker启动centos容器后如何用putty连接
在前面的文章中,我提到过,win10 docker启动容器时,只有配置了宿主机和docker容器的端口映射,外部应用才能访问到容器中的服务,比如映射到Nginx的80端口.现在我将宿主机的某个端口映射 ...
- Docker 启动时容器无法联网
转自:https://blog.csdn.net/u014062332/article/details/52911405 启动docker web服务时 虚拟机端口转发 外部无法访问 centos 7 ...
- docker启动各种容器命令大全
安装步骤梳理 搜索镜像 拉取镜像 查看镜像 启动镜像 停止容器 移除容器 安装tomcat docker hub好查找tomcat镜像 docker search tomcat 从docker hu ...
- docker启动,重启,停止容器
docker 启动已经停止的容器 docker start 容器ID或容器名 docker 停止容器 docker stop 容器ID或容器名 docker 启动一个容器 -d:后台运行 -p:端口映 ...
- Linux使用Docker启动Elasticsearch并配合Kibana使用,安装ik分词器
注意事项 这里我的Linux虚拟机的IP地址是192.168.1.3 Docker运行Elasticsearch容器之后不会立即有反应,要等一会,等待容器内部启动Elasticsearch,才可以访问 ...
- docker 启动 nginx 访问不了的问题
使用版本:nginx version: nginx/1.13.8 正使用docker启动nginx容器的时候,一切都很正常,容器也起来了 docker run -dit -p 80:80 --name ...
- Docker---(8)Docker启动Redis后访问不了
原文:Docker---(8)Docker启动Redis后访问不了 版权声明:欢迎转载,请标明出处,如有问题,欢迎指正!谢谢!微信:w1186355422 https://blog.csdn.net/ ...
- [Docker核心之容器、数据库文件的导入导出、容器镜像的导入导出]
[Docker核心之容器.数据库文件的导入导出] 使用 Docker 容器 在 Docker 中,真正对外提供服务的还是容器,容器是对外提供服务的实例,容器的本质是进程. 运行一个容器 docker ...
随机推荐
- SQL 注入学习手册【笔记】
SQL 注入基础 [若本文有问题请指正] 有回显 回显正常 基本步骤 1. 判断注入类型 数字型 or 字符型 数字型[示例]:?id=1 字符型[示例]:?id=1' 这也是在尝试闭合原来的 sql ...
- Pandas 使用教程 Series、DataFrame
目录 Series (一维数据) 指定索引值 使用 key/value 对象,创建对象 设置 Series 名称参数 DataFrame(二维数据) 使用字典(key/value)创建 loc 属性返 ...
- 如何将现有的`Blazor`项目的主题切换写的更好看?
如何将现有的Blazor项目的主题切换写的更好看? 在现有的系统当中,我们的主题切换会比较生硬,下面我们将基于Masa Blazor实现好看的扩散主题切换的样式效果. 安装MASA.Template ...
- C++算法之旅、06 基础篇 | 第三章 图论
常用代码模板3--搜索与图论 - AcWing DFS 尽可能往深处搜,遇到叶子节点(无路可走)回溯,恢复现场继续走 数据结构:stack 空间:需要记住路径上的点,\(O(h)\). BFS使用空间 ...
- Android 编译介绍
一.需求 Android的源码非常的庞大,编译Android系统往往会占用我们很长的时间,我们需要了解下Android的编译规则,以期能提高我们的开发效率,达到程序员按时下班的伟大理想. 二.环境 平 ...
- 基于AI模型的验证码安全识别(B站,知乎等)
bilibili 汉字识别顺序验证码 实现基本思路: 先利用Selenium模拟登录,当然在这之前做好请求伪装,get方法使边框最大化,并且将系统的windows窗口缩放比例设置为100%, ...
- Script:10g中显示Active Session Count by Wait Class
摘自: http://www.askmaclean.com/archives/script-10g-show-active-session-count-wait-class.html SELECT T ...
- 【信创】 JED on 鲲鹏(ARM) 调优步骤与成果
项目背景 基于国家对信创项目的大力推进,为了自主可控的技术发展,基础组件将逐步由国产组件替代,因此从数据库入手,将弹性库JED部署在 国产华为鲲鹏机器上(基于ARM架构)进行调优,与Intel (X8 ...
- dijkstra算法(朴素 + 堆优化)
dijkstra算法的大题思路是通过n - 1次迭代,每次迭代把一个点距汇点的最短路确定,当n - 1次循环过后所有点的最短路都已经确定 注意:dijkstra算法只适用于没有负权边的单源最短路 以下 ...
- 一些 trick 和思考收获
2023.1.7 P1117 优秀的拆分 对于一眼看上去只能直接求解的题可以设置一些节点变为求每个节点的贡献 *2023 7.24 补充:这个 trick 也被称为设置关键点,通常用于区间长度固定或是 ...