宁波网站建设制作价格/知名网络推广
文章目录
- 3 常用命令
- 3.1 镜像相关命令
- 3.1.1 查看镜像
- 3.1.2 搜索镜像
- 3.1.3 拉取镜像
- 3.1.4 删除镜像
- 3.2 容器相关命令
- 3.2.1 查看容器
- 3.2.2 创建与启动容器
- 项目案例: 基于Docker构建2048游戏项目
- 3.2.3 停止与启动容器
- 3.2.4 文件拷贝
- 项目案例: 基于Docker构建TF环境实现文件拷贝
- 3.2.5 目录挂载
- 3.2.6 查看容器IP地址
- 3.2.7 删除容器
- 3.2.7 删除容器
3 常用命令
3.1 镜像相关命令
3.1.1 查看镜像
$ docker load -i game2048.tar # 从tar包载入镜像
$ docker pull tensorflow/tensorflow # 从镜像仓库拉取镜像
$ docker images # 查看镜像
- REPOSITORY: 镜像名称
- TAG: 镜像标签
- IMAGE ID: 镜像ID
- CREATED: 镜像创建的时间(不是获取该镜像的日期)
- SIZE: 镜像大小
这些镜像都是存储在Docker宿主机的/var/lib/docker目录下。
3.1.2 搜索镜像
如果你需要从网络中查找需要的镜像,可以通过下面命令搜索:
$ docker search 镜像名称
3.1.3 拉取镜像
拉取仓库就是从镜像仓库中下载镜像到本地。
$ docker pull 镜像名称
3.1.4 删除镜像
按ID删除镜像
$ docker rmi 镜像ID
删除所有镜像(注意:``是反向单引号)
$ docker rmi `docker images -q`
3.2 容器相关命令
3.2.1 查看容器
查看所有正在运行的容器
$ docker ps
查看所有容器(即无论是否运行中)
$ docker ps -a
查看最后一次运行的容器
$ docker ps -l
查看停止的容器
$ docker ps -f status=exited
3.2.2 创建与启动容器
创建容器常用参数说明: docker run
-i, --interactive
: 表示运行容器-t, --tty
: 表示容器启动后进入其命令行(分配一个伪终端)--name
: 指定容器名称-v, --volume list
: 表示一个/多个目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录)-d, --detach
: 创建一个守护进程在后台运行-p, --publish list
: 表示一个/多个端口映射,前者是宿主机端口,后者是容器内的映射端口。
(1) 交互式创建容器
$ docker load -i ubuntu.tar # 加载镜像
$ docker run -it --name=myubuntu ubuntu /bin/bash # 创建容器, exit退出当前容器
$ docker ps -a # 查看容器
(2) 守护方式创建容器
$ docker run -di --name=容器名称 镜像名称:标签 # 创建容器
$ docker exec -it 容器名称/容器ID /bin/bash # 登录守护容器交互环境的方式
项目案例: 基于Docker构建2048游戏项目
$ docker load -i game2048.tar # 从tar包载入镜像
# 创建容器,并把容器的80端口映射到宿主机的127.0.0.1:5080端口
$ docker run -d --name 2048 -p 127.0.0.1:8888:80 game2048
浏览器访问网址: http://127.0.0.2:8888
, 访问效果如下:
3.2.3 停止与启动容器
停止容器:
$ docker stop 容器名称(或者容器ID)
启动容器:
$ docker start 容器名称(或者容器ID)
3.2.4 文件拷贝
如果我们需要将文件拷贝到容器内可以使用cp命令
$ docker cp 需要拷贝的文件或者目录 容器名称:容器目录
也可以将目录从容器内拷贝出来
$ docker cp 容器名称:容器目录 需要拷贝的文件或者目录
项目案例: 基于Docker构建TF环境实现文件拷贝
$ docker pull tensorflow/tensorflow # 从镜像仓库拉取镜像
$ docker run -di --name tf tensorflow/tensorflow # 创建容器
$ docker cp /etc/passwd tf:/mnt/ # 将文件拷贝到容器/mnt/目录下
$ docker exec -it tf /bin/bash # 登录守护容器交互环境的方式查看是否拷贝成功
3.2.5 目录挂载
我们可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主主机某个目录的文件从而影响容器。
创建容器,添加-v参数 后面为 宿主机目录: 容器目录,例如:
$ docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name myubuntu1 ubuntu
$ docker exec -it myubuntu1 /bin/bash
root@8e80ee93f4e1:/# cd /usr/local/myhtml/
root@8e80ee93f4e1:/usr/local/myhtml# ls
test
如果你共享的是多级的目录,可能会出现权限不足的提示。
这是因为Redhat7的安全模块Selinux把权限禁掉了, 我们需要添加参数--privileged=true
来解决挂载的目录没有权限的问题。
3.2.6 查看容器IP地址
我们可以通过以下命令查看容器运行的各种数据,myubuntu1是容器的名称。
$ docker inspect myubuntu1
也可以执行下面的命令直接输出IP地址,myubuntu1是容器的名称。
$ docker inspect --format='{{.NetworkSettings.IPAddress}}' myubuntu1
3.2.7 删除容器
删除指定的容器,如果删除容器时,容器正在运行中,则先停止容器。
$ docker stop myubuntu1
$ docker rm myubuntu1
$ docker inspect --format='{{.NetworkSettings.IPAddress}}' myubuntu1
3.2.7 删除容器
删除指定的容器,如果删除容器时,容器正在运行中,则先停止容器。
$ docker stop myubuntu1
$ docker rm myubuntu1