1.简单原理docker运行程序 就是 主机 运行 docker,docker运行容器里面的app,这个容器包含了app运行的所需要的环境。docker run 容器 容器里的程序 当容器里的程序结
1.简单原理
docker运行程序 就是 主机 运行 docker,docker运行容器里面的app,这个容器包含了app运行的所需要的环境。
docker run 容器 容器里的程序
当容器里的程序结束的时候,容器也就结束了。容器为一个linux系统
2.镜像和容器
镜像是ubuntu系统和你需要运行的程序组成的一个文件。
当这个文件被docker 运行起来的时候,这个运行的文件叫做容器。相当于java中的类和对象的关系
当你对这个容器做出修改或者在容器中安装了其他软件,退出容器后,可以通过 docker ps -a 查看容器情况。可以将修改后的容器 通过docker commit 命令将容器转为镜像。
3.镜像的导出和导入
在系统中导入镜像可以通过 下载 官方的镜像。通过 docker search 搜索你需要的镜像。
也可以在官网上注册一个账号。然后将自己的镜像上传到官网
但有的时候我们需要将自己的镜像保存到本地。可以通过docker save 保存。然后通过docker load 在其他电脑上导入镜像
4.主机和容器
如果我们遇到这样的一个程序。这个程序要使用 /home/user/software 的目录,可以通过 docker run -v
命令来指定主机目录挂载到容器中
我们如果运行tomcat等软件,要容器端口号和主机端口号关联起来,当我们访问主机的端口号时就时访问 容器的端口号。可以使用docker run -p
来映射端口号
5.容器访问宿主机mysql
容器要访问宿主机的数据库,宿主机的mysql要开启远程访问
宿主机和容器在一个内在网段内。地址为 172.17.0.1-172.17.0.255。
容器可以通过ip直接访问宿主机的mysql数据库
6.进入容器中
使用sshd进入容器
$ docker run -it image_id /bin/bash
docker容器中最好不要运行sshd服务。一般不要采用这种方法
使用docker exec进入容器
$ docker exec -it container_id /bin/bash
然后就可以进行修改了
7.清理images和container
有的时候我们linux系统存储空间不够需要腾出空间
$ docker rm $(docker ps -a -q)
清理所有的容器记录
$ docker rmi $(docker images -q)
清理所有的镜像