使用 docker ps 命令,可以查看到我们正在运行的项目,如下所示:
然后,使用 docker exec -it 1f6091e48979 /bin/sh 命令即可进入容器文件夹,就可以使用相关的 Linux 命令来进行操作了,比如查看程序运行的日志文件,生成的文件等。
使用 docker ps 命令,可以查看到我们正在运行的项目,如下所示:
然后,使用 docker exec -it 1f6091e48979 /bin/sh 命令即可进入容器文件夹,就可以使用相关的 Linux 命令来进行操作了,比如查看程序运行的日志文件,生成的文件等。
docker run 表示为一个镜像创建新的容器,并运行。
使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx。
docker run --name mynginx -d nginx:latest
使用镜像nginx:latest以后台模式启动一个容器,并将容器的80端口映射到主机随机端口。
docker run -P -d nginx:latest
使用镜像 nginx:latest,以后台模式启动一个容器,将容器的 80 端口映射到主机的 80 端口,主机的目录 /data 映射到容器的 /data。
docker run -p 80:80 -v /data:/data -d nginx:latest
绑定容器的 8080 端口,并将其映射到本地主机 127.0.0.1 的 80 端口上。
$ docker run -p 127.0.0.1:80:8080/tcp ubuntu bash
使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。
runoob@runoob:~$ docker run -it nginx:latest /bin/bash
root@b8573233d675:/#
docker load 命令,可导入镜像文件 *.tar ,该文件一般由 docker save 命令进行镜像导出的。
操作实例:
docker load -i test.tar
// 或以下代码,同等效应
docker load < test.tar
-i :指定导出的文件。
docker save 命令可以将指定镜像导出为 tar 文件。
使用方法如下:
docker iamges //使用该命令查看镜像列表
docker save -o test.tar test/ubuntu:latest //导出指定的镜像
执行后没有报错,即表示操作成功。
-o 表示输出到磁盘,并填写路径(可以是绝对路径或相对路径),如 “test.tar”
test/ubuntu:latest 表示镜像名称 test/ubuntu 以及版本号 latest
以 Windows 为例,首先 cmd 命令需要进入需要打包的文件夹路径内,如: “D:\MyProjects\Test” ,然后执行如下命令:
docker build -t test/ubuntu:v1 .
-t 参数等效于 –tag 参数,表示: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。
“test/ubuntu:v1” 表示我设置的镜像名称以及版本号,最新版本通常使用“latest”表示,如: “test/ubuntu:latest” 即可。
生成的镜像依然在 Docker 内,可以使用以下命令进行查看:
docker images
资料参考: https://www.runoob.com/docker/docker-build-command.html
应用场景:需要彻底删除一个正在运行的镜像
$ docker ps // 查看所有正在运行容器
$ docker stop containerId // containerId 是容器的ID
$ docker ps -a // 查看所有容器 $ docker ps -a -q // 查看所有容器ID
$ docker stop $(docker ps -a -q) // stop停止所有容器
$ docker rm $(docker ps -a -q) // remove删除所有容器
$ docker images // 查看镜像列表
$ docker rmi ImageId //删除镜像 ImageId 是镜像的Id
Linux 通过 Date
命令查看系统时间,得到如下结果:
[root@iZ8vbg6m7f5ntzibw3t4huZ ~]# date
Mon Aug 26 12:24:58 CST 2019
但是在 Docker 容器中,同样输入 Date
命令,查看时间却得到如下结果:
root@52127e6f4c47:/app# date
Mon Aug 26 04:25:07 UTC 2019
可以发现,他们相隔了8小时。
CST应该是指(China Shanghai Time,东八区时间)
UTC应该是指(Coordinated Universal Time,标准时间)
所以,这2个时间实际上应该相差8个小时。
1.进入容器:
docker exec -t -i c360cc412528 /bin/bash // c360cc412528 为容器id
2. 在 /usr/share/zoneinfo
目录下找上海时区
cd /usr/share/zoneinfo/Asia
3. 复制上海时区到 /etc
重命名 localtime
文件
cp -i Shanghai /etc/localtime
如得到提示 cp: overwrite ‘/etc/localtime’? ,则输入 yes 后按下回车键即可。
4. 完成,输入 Date 命令查看系统时间,得到如下结果:
root@52127e6f4c47:/usr/share/zoneinfo/Asia# date
Mon Aug 26 12:27:34 CST 2019
我们看到时间已经从 UTC 转为了 CST 时区,时间也已经显示正常,搞定。