通过前文(https://www.cnblogs.com/jilodream/p/18177695)的了解,我们已经大致明白了什么是docker,为什么要用docker,以及docker的基本设计思路是什么。
今天来看下,docker的基本操作有哪些?
1、linux下安装docker
首先我们来安装docker,
如下是使用centos 7的安装办法,其他系统可以自行搜索,都不是很复杂
1 [root@iZ2ze3bpa0o5cw6gp42ry2Z ~]# yum -y install docker 2 Loaded plugins: fastestmirror 3 Determining fastest mirrors 4 base | 3.6 kB 00:00:00 5 docker-ce-stable | 3.5 kB 00:00:00 6 epel | 4.3 kB 00:00:00 7 extras | 2.9 kB 00:00:00 8 kubernetes | 1.4 kB 00:00:00 9 updates | 2.9 kB 00:00:00 10 (1/6): epel/x86_64/updateinfo | 1.0 MB 00:00:00 11 (2/6): epel/x86_64/primary_db | 8.7 MB 00:00:00 12 (3/6): extras/7/x86_64/primary_db | 253 kB 00:00:00 13 (4/6): epel/x86_64/group | 399 kB 00:00:00 14 (5/6): updates/7/x86_64/primary_db | 27 MB 00:00:00 15 (6/6): docker-ce-stable/7/x86_64/primary_db | 148 kB 00:00:00 16 17 后续省略
安装好docker之后,通过检测docker版本的办法,查看docker 是否已经安装成功。
1 [root@iZ2ze3bpa0o5cw6gp42ry2Z ~]# docker -v 2 Docker version 26.0.0, build 2ae903e
在安装完docker 之后,如果是国内服务器的话,我们常常还需要配一个国内的docker仓库镜像地址:vi /etc/docker/daemon.json
1 vi /etc/docker/daemon.json 2 3 #填写如下json信息 4 { 5 "registry-mirrors": ["https://hnkfbj7x.mirror.aliyuncs.com"], 6 "exec-opts": ["native.cgroupdriver=systemd"] 7 } 8 9 10 # wq 保存文件后 11 #保存ok之后,重启docker 服务 12 systemctl restart docker
2、查询docker 镜像
安装好docker 之后,我们来查看镜像,我们以tomcat为例
如下,查询出相应的镜像:
1 [root@iZ2ze3bpa0o5cw6gp42ry2Z ~]# docker search tomcat 2 NAME DESCRIPTION STARS OFFICIAL 3 tomcat Apache Tomcat is an open source implementati… 3667 [OK] 4 tomee Apache TomEE is an all-Apache Java EE certif… 115 [OK] 5 bitnami/tomcat Bitnami container image for Tomcat 50
3、获取docker镜像
确定好有所需镜像后(不是必要操作),我们直接拉取镜像:
1 [root@iZ2ze3bpa0o5cw6gp42ry2Z ~]# docker pull tomcat 2 Using default tag: latest 3 latest: Pulling from library/tomcat 4 0e29546d541c: Pull complete 5 9b829c73b52b: Pull complete 6 cb5b7ae36172: Pull complete 7 6494e4811622: Pull complete 8 668f6fcc5fa5: Pull complete 9 dc120c3e0290: Pull complete 10 8f7c0eebb7b1: Pull complete 11 77b694f83996: Pull complete 12 0f611256ec3a: Pull complete 13 4f25def12f23: Pull complete 14 Digest: sha256:9dee185c3b161cdfede1f5e35e8b56ebc9de88ed3a79526939701f3537a52324 15 Status: Downloaded newer image for tomcat:latest 16 docker.io/library/tomcat:latest
如上就代表我们已经将镜像拉去到本地了。
4、查看本地docker 镜像
有时我们需要查看一下本地是否已经有拉取好的某个镜像,可以如下操作:
第一列为镜像名称
第二列为tag,相当于版本号,一般latest为最新版,默认下载的镜像,都是最新版,如果想指定镜像tag则可以使用
docker pull 镜像名:tag 的形式拉取
第三列为镜像id,如果相同,则可以说明这两个镜像是相同的
第四列为镜像的创建时间(防盗连接:本文首发自http://www.cnblogs.com/jilodream/ )
第五列镜像的大小
1 [root@iZ2ze3bpa0o5cw6gp42ry2Z ~]# docker images 2 REPOSITORY TAG IMAGE ID CREATED SIZE 3 tomcat latest fb5657adc892 2 years ago 680MB 4 gcr.io/kuar-demo/kuard-amd64 blue 1db936caa6ac 5 years ago 23MB 5 gcr.io/kuar-demo/kuard-amd64 latest 1db936caa6ac 5 years ago 23MB
5、运行docker容器
镜像下载好之后,如果想要运行,我们需要创建相应的容器:
docker run 为运行容器命令
-d 代表后台执行
-p 表示端口映射,也就是将本机的4321端口,映射到容器的8080端口(tomcat默认端口),这样当外界请求访问本机时,会自动请求到容器的8080端口上
--name 表示容器的名称,
tomcat 表示使用的镜像为tomcat(如有多个需要指定tag版本号)
创建好之后会给我们返回一个随机的字符串。
1 [root@iZ2ze3bpa0o5cw6gp42ry2Z ~]# docker run -d -p 4321:8080 --name mytomcat01 tomcat 2 127ce6e75e9c62c84bea139ff7e14e9c5cb0f55554430c9265ce9cb74a160bd1
6、查看docker容器,详细信息
启动好tomcat 容器后,我们来查看容器的状态
1 [root@iZ2ze3bpa0o5cw6gp42ry2Z ~]# docker ps 2 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3 127ce6e75e9c tomcat "catalina.sh run" 7 minutes ago Up 7 minutes 0.0.0.0:4321->8080/tcp mytomcat01
注意这里只能看到部分运行中容器,有时我们想要看已经停止的容器,可以使用
docker ps -a
除此之外,我们还可以使用docker inspect 的命令来查看容器更详细的内容,不过这个命令暂时我们用不到,先跳过。
7、进入docker 容器
创建好tomcat容器之后,我们需要进入到容器中进入操作:
进入容器的命令如下:
docker exec -it 容器id 运行命令,
其中 -it 表示交互式操作 ,运行命令表示进入容器后,先行的执行命令,因为我们都是要做后续bash操作,所以一般都是接 /bin/bash 或者 /bin/sh
进入以后就是一个微型的linux虚拟机了,我们修改下tomcat的webapps文件,保证tomcat可以正常可用
1 [root@iZ2ze3bpa0o5cw6gp42ry2Z ~]# docker exec -it 127ce6e75e9c /bin/bash 2 root@127ce6e75e9c:/usr/local/tomcat# ls 3 BUILDING.txt LICENSE README.md RUNNING.txt conf logs temp webapps.dist 4 CONTRIBUTING.md NOTICE RELEASE-NOTES bin lib native-jni-lib webapps work 5 root@127ce6e75e9c:/usr/local/tomcat# rm -rf webapps 6 root@127ce6e75e9c:/usr/local/tomcat# mv webapps.dist webapps 7 root@127ce6e75e9c:/usr/local/tomcat# exit
注意退出容器后,我们使用exit命令退出。之后我们通过浏览器,访问我们创建的tomcat容器:(防盗连接:本文首发自http://www.cnblogs.com/jilodream/ )
http://linux宿主机Ip:4321/
8、停止、重启docker容器
这三个命令就不讲了,很简单
docker stop 容器id
docker restart 重启id
docker start 启动停止状态的容器
9、删除docker容器、镜像
清理磁盘空间或出于安全原因,我们通常需要移除镜像和容器
docker rm 容器id #使用此命令来移除容器
docker rmi 镜像id #使用此命令来移除镜像
注意移除镜像前,必须要先移除掉所有直接使用该镜像的容器,否则会删除不成功(防盗连接:本文首发自http://www.cnblogs.com/jilodream/ )
10、修改镜像tag
我们通常会修改镜像tag 来适配版本发布的节奏
docker tag 镜像id 镜像名称:新tag
1 [root@iZ2ze3bpa0o5cw6gp42ry2Z ~]# docker tag fb5657adc892 tomcat:my-tomcat-image 2 [root@iZ2ze3bpa0o5cw6gp42ry2Z ~]# docker images 3 REPOSITORY TAG IMAGE ID CREATED SIZE 4 tomcat latest fb5657adc892 2 years ago 680MB 5 tomcat my-tomcat-image fb5657adc892 2 years ago 680MB
注意看两个镜像的镜像id是一致的,但是镜像tag不一样
上述就是docker 最基本的一些操作,汇总来看就是这个样子:
镜像版:
容器版:
docker的命令还有很多,而且我介绍的命令也是这些操作中最常用的用法。由于篇幅和能力有限无法全面介绍到,大家有需要只能根据实际需要自行搜索,或者help查看文档