docker镜像、容器 常用命令,容器端口映射

前言

当看到此篇文章时,你应该已经搭建好了docker环境了吧?如果没有,请移步另一个博客:docker的安装和设置镜像加速

一、docker基础命令

docker --version   查看版本号
systemctl start docker  启动docker
systemctl daemon-reload  守护进程重启
systemctl restart docker  重启docker
docker service docker stop  关闭docker
docker stats 查看docker占用的内存

守护进程:在docker中,守护进程用于监控指定的进程,当发现目标进程工作异常时,可以对该目标进程进行控制

二、docker镜像命令

docker镜像好比是一个模版,可以通过这个模版来创建容器服务,通过这个镜像可以创建多个容器
容器与容器之间相互是隔离的。

1、docker images:列出本地主机的镜像

docker images  列出本地主机的镜像

在这里插入图片描述
REPOSITORY:表示镜像的仓库源
TAG:镜像的标签
IMAGE ID:镜像id
CREATED:镜像创建时间
SIZE:镜像大小

2、 docker search :查看镜像

docker search xxxx  查看某个服务的镜像是否存在
docker search --limit 5 mysql  查看mysql服务的镜像,且只列出5个
docker search mysql --limit  4 --no-trunc   查看mysql服务的镜像,且只列出4个,拦截信息不会被截断(展示完整信息)
docker search mysql  --filter is-official=true  查看mysql服务的镜像,根据官方镜像过滤

在这里插入图片描述
NAME:镜像仓库源的名称
DESCRIPTION: 镜像的描述
OFFICIAL:是否 docker 官方发布。如果是官方镜像,显示 “OK”
stars:类似 Github 里面的 star,表示点赞、喜欢的意思
AUTOMATED:自动构建。如果是自动化构建,显示“OK”

3、docker pull:拉取镜像

Docker Hub地址:https://hub.docker.com/_/

在这里插入图片描述
在这里插入图片描述

docker pull xxx    下载镜像
docker pull mysql  从Docker Hub里,下载mysql最新的镜像
docker pull -a mysql 从Docker Hub下载REPOSITORY为mysql的所有镜像
docker pull mysql:5.7 从Docker Hub下载tag为5.7的mysql镜像

在这里插入图片描述

4、docker rmi : 删除docker镜像

docker rmi id/名字  删除docker镜像
docker rmi c20987f18b13  删除我本地的mysql镜像,根据镜像id删除
docker rmi mysql   删除我本地的mysql镜像,根据镜像名字删除
docker rmi -f mysql 强制删除mysql镜像
docker rmi -f nginx mysql  同时删除我本地的nginx、mysql镜像

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、docker容器命令

1、环境准备

docker pull tomcat# 先拉取一个centos镜像

2、运行容器

docker run --name container-name -d image-name:tag  运行容器
docker run --name tomcat_ -d tomcat  通过tomcat镜像,生成名为:tomcat_的容器

–name:自定义容器名
-d:表示后台运行
image-name:指定运行的镜像名称
tag:镜像的版本
在这里插入图片描述

3、启动、停止、重启容器

docker ps -a  先查看所有容器信息

在这里插入图片描述
CONTAINER ID: 容器 ID。

IMAGE: 使用的镜像。

COMMAND: 启动容器时运行的命令。

CREATED: 容器的创建时间。

STATUS: 容器状态。

docker start id  根据容器id启动容器   
docker start 1d13832397e6  启动我本地的tomcat_容器
docker start name  根据容器名字启动容器
docker start tomcat_  启动我本地的tomcat_容器
docker restart id/name 根据容器id或者容器名字重启容器
docker restart tomcat_ 重启我本地的tomcat_容器
docker stop id/name 停止容器
docker kill id/name 停止容器
docker stop tomcat_  / docker kill tomcat_  停止我本地的tomcat_容器

在这里插入图片描述

4、查看容器日志

docker logs id/name 查看容器日志
docker logs tomcat_ 查看tomcat_容器的日志

在这里插入图片描述

5、进入容器

docker exec -it 容器名字/容器id  /bin/bash  进入容器
docker exec -it tomcat_ /bin/bash  进入tomcat_容器内

四、容器端口映射

docker run --name 容器名字 -d 镜像名字:tag:单纯的如此运行容器,程序占用的是 Docker 容器内部的端口,并不是服务器对外的访问端口,所以必须做 端口映射 将服务器的实际端口映射到 Docker 容器中的端口才能访问。

在这里插入图片描述

docker run --name 容器名字:tag -d -p 服务器端口:Docker端口 image-name  端口映射

–name:自定义容器名,不指定时,docker 会自动生成一个名称

-d:后台运行容器

-p: Linux 服务器与 Docker 容器的端口映射,默认情况下容器中镜像占用的端口是 Docker 容器中的端口,与外界是隔绝的,必须进行端口映射才能访问。

image-name:指定运行的镜像名称以及 Tag

1、tomcat端口映射案例

[root@iZm5e8w23bqasdqw00wz524Z ~]# docker pull tomcat
Using default tag: latest
latest: Pulling from library/tomcat
0e29546d541c: Pull complete 
9b829c73b52b: Pull complete 
cb5b7ae36172: Pull complete 
6494e4811622: Pull complete 
668f6fcc5fa5: Pull complete 
dc120c3e0290: Pull complete 
8f7c0eebb7b1: Pull complete 
77b694f83996: Pull complete 
0f611256ec3a: Pull complete 
4f25def12f23: Pull complete 
Digest: sha256:9dee185c3b161cdfede1f5e35e8b56ebc9de88ed3a79526939701f3537a52324
Status: Downloaded newer image for tomcat:latest
docker.io/library/tomcat:latest
[root@iZm5e8w23bqasdqw00wz524Z ~]# docker run --name tomcat1 -d -p 9001:8080 tomcat
c7ea8efea19f4fdde6ff63a1cd21ad4c329592ec55a90713ee75fa1f4e5e2ae6
[root@iZm5e8w23bqasdqw00wz524Z ~]# docker exec -it tomcat1 /bin/bash
root@c7ea8efea19f:/usr/local/tomcat# ls -l
total 160
-rw-r--r-- 1 root root 18994 Dec  2 22:01 BUILDING.txt
-rw-r--r-- 1 root root  6210 Dec  2 22:01 CONTRIBUTING.md
-rw-r--r-- 1 root root 60269 Dec  2 22:01 LICENSE
-rw-r--r-- 1 root root  2333 Dec  2 22:01 NOTICE
-rw-r--r-- 1 root root  3378 Dec  2 22:01 README.md
-rw-r--r-- 1 root root  6905 Dec  2 22:01 RELEASE-NOTES
-rw-r--r-- 1 root root 16517 Dec  2 22:01 RUNNING.txt
drwxr-xr-x 2 root root  4096 Dec 22 17:07 bin
drwxr-xr-x 1 root root  4096 Apr 11 10:44 conf
drwxr-xr-x 2 root root  4096 Dec 22 17:06 lib
drwxrwxrwx 1 root root  4096 Apr 11 10:44 logs
drwxr-xr-x 2 root root  4096 Dec 22 17:07 native-jni-lib
drwxrwxrwx 2 root root  4096 Dec 22 17:06 temp
drwxr-xr-x 2 root root  4096 Dec 22 17:06 webapps
drwxr-xr-x 7 root root  4096 Dec  2 22:01 webapps.dist
drwxrwxrwx 2 root root  4096 Dec  2 22:01 work
root@c7ea8efea19f:/usr/local/tomcat# exit
exit
[root@iZm5e8w23bqasdqw00wz524Z~]# 
docker pull tomcat  拉取tomcat镜像
docker run --name tomcat1 -d -p 9001:8080 tomcat docker端口8080映射外部端口9001
docker tomcat1 exec -it /bin/bash  进入tomcat容器内
ls -l   查看目录结构

可以看到,进入tomcat1容器内,如同是在本地进入安装程序的根目录下一样,进去后可以执行 linux 命令。同样,可以通过exit命令(或者是ctrl+D)来退出。

五、Docker 容器与宿主服务器文件复制

cd /home  我先进入到根目录
touch 11.txt    创建了一个11.txt文件
docker cp /home/11.txt tomcat1:/home/11.txt  将宿主机的11.txt文件,复制到tomcat1容器的home目录下
docker exec -it tomcat1 /bin/bash  进入tomcat1容器内
cd /home  进入tomcat1容器的home目录
ls     查看当前目录下的文件
[root@iZm5e8w23bqasdqw00wz524Z /]# cd /home
[root@iZm5e8w23bqasdqw00wz524Z home]# touch 11.txt
[root@iZm5e8w23bqasdqw00wz524Z home]# docker cp /home/11.txt tomcat1:/home/11.txt
[root@iZm5e8w23bqasdqw00wz524Z  home]# docker exec -it tomcat1 /bin/bash
root@c7ea8efea19f:/usr/local/tomcat# cd /home
root@c7ea8efea19f:/home# ls
11.txt
root@c7ea8efea19f:/home# 

docker cp 宿主机路径/11.txt tomcat1:容器路径/11.txt 将宿主机的11.txt文件,复制到tomcat1容器的home目录下

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值