这里是我用docker启动所有常见的容器完美的过程,就是一次创建,后面就可以一直使用

文档:

nanshaws/docker-everything: 用docker来创建各种容器,完美文档教你按照步骤操作制造完美容器,如果你使用docker桌面版的话,这个文档也许更适合你 (github.com)

我认为的创建容器并不是简简单单的拉镜像,创建一个不完整的容器就草草了事的,而是以完美的形态,搭建端口号,创建挂载目录,把容器变的像本机的软件一样的存在

这里就简单讲一下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启动完美容器的过程的更多相关文章

  1. docker-compose docker启动工具,容器互联

    简介: docker可以一条命令就运行一个配置好的服务器,很是方便. 但是也有一个问题就是,当参数比较多,映射目录比较多,映射端口比较多………… 我以前就是写个脚本,用脚本来启动,很low啊. 也见到 ...

  2. docker 启动redis容器

    dockerfile FROM registry.cn-hangzhou.aliyuncs.com/xxxholic/redis COPY redis.conf EXPOSE redis.conf p ...

  3. docker启动centos容器后如何用putty连接

    在前面的文章中,我提到过,win10 docker启动容器时,只有配置了宿主机和docker容器的端口映射,外部应用才能访问到容器中的服务,比如映射到Nginx的80端口.现在我将宿主机的某个端口映射 ...

  4. Docker 启动时容器无法联网

    转自:https://blog.csdn.net/u014062332/article/details/52911405 启动docker web服务时 虚拟机端口转发 外部无法访问 centos 7 ...

  5. docker启动各种容器命令大全

    安装步骤梳理 搜索镜像 拉取镜像 查看镜像 启动镜像 停止容器 移除容器 安装tomcat docker hub好查找tomcat镜像  docker search tomcat 从docker hu ...

  6. docker启动,重启,停止容器

    docker 启动已经停止的容器 docker start 容器ID或容器名 docker 停止容器 docker stop 容器ID或容器名 docker 启动一个容器 -d:后台运行 -p:端口映 ...

  7. Linux使用Docker启动Elasticsearch并配合Kibana使用,安装ik分词器

    注意事项 这里我的Linux虚拟机的IP地址是192.168.1.3 Docker运行Elasticsearch容器之后不会立即有反应,要等一会,等待容器内部启动Elasticsearch,才可以访问 ...

  8. docker 启动 nginx 访问不了的问题

    使用版本:nginx version: nginx/1.13.8 正使用docker启动nginx容器的时候,一切都很正常,容器也起来了 docker run -dit -p 80:80 --name ...

  9. Docker---(8)Docker启动Redis后访问不了

    原文:Docker---(8)Docker启动Redis后访问不了 版权声明:欢迎转载,请标明出处,如有问题,欢迎指正!谢谢!微信:w1186355422 https://blog.csdn.net/ ...

  10. [Docker核心之容器、数据库文件的导入导出、容器镜像的导入导出]

    [Docker核心之容器.数据库文件的导入导出] 使用 Docker 容器 在 Docker 中,真正对外提供服务的还是容器,容器是对外提供服务的实例,容器的本质是进程. 运行一个容器 docker ...

随机推荐

  1. 知识图谱(Knowledge Graph)- Neo4j 5.10.0 CentOS 安装

    知识图谱(Knowledge Graph)- Neo4j 5.10.0 Docker 安装 知识图谱(Knowledge Graph)- Neo4j 5.10.0 CentOS 安装 https:// ...

  2. 一种基于ChatGPT的高效吃瓜方式的探索和研究。

    你好呀,我是歪歪. 最近掌握了一个新的吃瓜方式,我觉得还行,给大家简单分享一下. 事情说来就话长了,还得从最近的一次"工业革命"开始,也就是从超导材料说起. 8 月 1 日的时候 ...

  3. 知识图谱(Knowledge Graph)- Neo4j 5.10.0 使用 - Java SpringBoot 操作 Neo4j

    上一篇使用了 CQL 实现了太极拳传承谱,这次使用JAVA SpringBoot 实现,只演示获取信息,源码连接在文章最后 三要素 在知识图谱中,通过三元组 <实体 × 关系 × 属性> ...

  4. Redis系列22:Redis 的Pub/Sub能力

    Redis系列1:深刻理解高性能Redis的本质 Redis系列2:数据持久化提高可用性 Redis系列3:高可用之主从架构 Redis系列4:高可用之Sentinel(哨兵模式) Redis系列5: ...

  5. Oracle为表添加约束

    转载自:https://blog.csdn.net/qq_38662525/article/details/94192475 创建一个学生表和院系表:院系表为主表,学生表为从表   create ta ...

  6. xftp 7必须更新最新版本怎么解决

    下载可以查看16进制的软件: Sublime Text 运行XFTP7 双击打开是:这样的 解决方案 用Sublime Text进行打开nslicense.dll, 打开之后查找"0f88 ...

  7. umich cv-2-1

    UMICH CV Linear Classifiers 对于使用线性分类器来进行图片分类,我们可以给出这样的参数化方法: 而对于这样一个式子,我们怎么去理解呢? 首先从代数的角度,这个f(x,W)就是 ...

  8. Redis系列之——Redis介绍安装配置

    文章目录 第一章 redis初识 1.1 Redis是什么 1.2 Redis特性(8个) 1.3 Redis单机安装 1.3.1下载安装 1.3.2三种启动方式 1.3.2.1 最简启动 1.3.2 ...

  9. Python - 中文文本进行余弦相似度比较

    今天,在看论文的时候,突然想到了一件事情,爱是相对的,是双方的事情.那么"你爱我"和"你爱我"的相似度是多少呢?采用余弦相似度的方式来进行相似度比较.首先&qu ...

  10. 使用 QuickTime Player 将手机投屏到旧版 Macbook pro

    由于旧版的 MacBook Pro 不支持 AirPlay,我们可以通过Mac系统自带的应用程序[QuickTime Player]来进行投屏操作. 以下是具体的步骤: 首先,使用USB数据线将你的 ...