Docker 基本命令
Docker 基本命令
1.搜索docker镜像
[root@node209 ~]# docker search hello-world
2.下载docker镜像
docker pull docker.io/hello-world
3.查看docker镜像
docker images
docker image ls
4.运行docker镜像
docker run IMAGE ID (镜像ID只需要前几个字符即可识别)
[root@node209 ~]# docker run fce
5.查看正在运行的docker容器
docker container ls
docker ps
6.查看已经运行过的容器
[root@node209 ~]# docker ps -a
7.运行一个在后台的任务
docker run -d centos /bin/sh -c "while true;do echo hello_docker; sleep 1;done"
# 容器是运行应用程序的,所以必须要先有一个操作系统为基础
# 运行一个在后台的任务
docker run -d centos /bin/sh -c "while true;do echo hello_docker; sleep 1;done"
-d # 后台运行容器
/bin/sh # 指定使用centos的bash解释器
-c # 运行一段shell命令
"while true;do echo hello_docker; sleep 1;done" # 在linux后台,每秒中打印一个hello_docker
8.不间断打印容器的日志信息
docker logs -f 容器id # 不间断打印容器的日志信息
9.进入运行的容器
docker exec -it CONTAINER ID或NAMES /bin/bash
docker exec -it 容器id
docker attach 容器id
如:
10.交互式的运行一个容器,且进入容器(也就是开启并进入一个新的容器)
docker run -it centos /bin/bash
假如你没有centos这个镜像的话,它会自动从网上下载下来并运行
11.删除docker镜像删除docker容器
# 删除docker镜像
docker rmi REPOSITORY名/IMAGE ID
如果使用REPOSITORY最后后面跟版本
如果是镜像ID就不需要
# 删除docker容器
docker 容器id
如果正在运行最后先docker stop 容器ID
12.提交创建自定义的镜像(docker container commit)
例如在docker里面安装一个vim然后再生产新的一个镜像过程:
(1)我们进入交互式的centos容器中,发现没有vim命令
docker run -it centos /bin/bash
(2)在当前容器中,安装一个vim
yum install -y vim
(3)安装好vim之后,exit退出容器
exit
(4)查看刚才安装好vim的容器记录
docker container ls -a
(5)提交这个容器,创建新的image,
根据上面截图获取容器ID: b93d3b3ad45a
docker commit b93d3b3ad45a zero/centos-vim
# zero/centos-vim 为自定义的镜像名
6.查看镜像文件
[root@node209 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
zero/centos-vim latest 11c8cef9ccb0 12 seconds ago 326 MB
13.导出镜像
# zero/centos-vim 为镜像名
docker save zero/centos-vim > /opt/mycentos.tar.gz
14.导入镜像
docker load < /opt/mycentos.tar.gz
15.启动容器与停止容器
docker stop 容器id
docker start 容器id
16.新建容器并且启动
新建一个容器并输出hehe
docker run centos /bin/echo "hehe" # 这跟在本地直接执行 /bin/echo'hehe'
新建容器并自定义一个名字mycontainer
docker run --name mycontainer -it centos /bin/bash # 启动一个bash终端,允许用户进行交互。
查看的时候运行容器中多了一个名为mycontainer的容器
17.运行一个ubuntu容器
运行一个容器并进入终端
[root@node209 opt]# docker run -it centos /bin/bash
[root@4a96c773a085 /]#
18.查看所有的docker容器ID和镜像ID
# 查看所有的docker容器记录ID
docker ps -aq
# 查看所有的docker镜像ID
docker images -aq
# 删除所有的已经运行过的docker容器记录
docker rm `docker ps -aq`
# 删除所有的docker镜像
docker rmi `docker images -aq
19.查看指定容器的端口映射
docker port 容器ID
20.容器内的进程
docker top 容器id
21.外部访问容器
(1)在容器内跑一个app.py程序, 运行在5000端口
(2)使用-P参数随机映射一个端口到虚拟机上
docker run -d -P training/webapp python app.py
-P 参数会随机映射端口到容器开放的网络端口
如果本地没有这个镜像,docker run会自动为我们下载镜像然后运行
这边随机映射了32768端口
(3)使用-p参数自定义一个端口到虚拟机上, 如9000端口
docker run -d -p 9000:5000 training/webapp python app.py
(4)我们可以通过虚拟机的IP 加端口9000进行访问
22.查看容器详细信息
# docker inspect 容器ID
[root@node209 ~]# docker inspect ab56bba91343