当看到此篇文章时,你应该已经搭建好了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 images 列出本地主机的镜像
REPOSITORY:表示镜像的仓库源
TAG:镜像的标签
IMAGE ID:镜像id
CREATED:镜像创建时间
SIZE:镜像大小
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”
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镜像
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 pull tomcat# 先拉取一个centos镜像
docker run --name container-name -d image-name:tag 运行容器
docker run --name tomcat_ -d tomcat 通过tomcat镜像,生成名为:tomcat_的容器
–name:自定义容器名
-d:表示后台运行
image-name:指定运行的镜像名称
tag:镜像的版本
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_容器
docker logs id/name 查看容器日志
docker logs tomcat_ 查看tomcat_容器的日志
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
[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)来退出。
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目录下