docker 的具体使用指南 及php多版本运行

首先,我是在ubuntu16.04下使用的docker
安装如下:下载安装包https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/
执行一下命令安装:sudo dpkg -i /path/to/docker.deb 注意目录

  • 在此出现的情况可能有以前装过的老版本的docker ,怎么卸载呢?方法如下:

    • sudo apt-get remove docker docker-engine docker.io 即可移除旧版本
  • 比较重要的一个,就是镜像加速具体配置如下:先去阿里云申请一个加速镜像(https://cr.console.aliyun.com/cn-hangzhou/mirrors
    如下图

    image.png

    然后再执行一下面的命令就可以了,切忌不要听网上说什么bin下面某个文件修改,那个是错误的

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://23bn36wx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
  • 安装完毕后第一个image镜像使用一下吧 sudo docker run hello-world 效果图如下


    image.png
  • 不想要了,想删除某个镜像,记住要先停掉所有的docker服务,service docker stop 停掉服务,然后执行 docker rmi container_id 就行了
  • 怎么进入容器内部呢?命令如下:docker exec -ti containner_name /bin/bash
  • 进入内部后发现没有vim编辑器怎么办》
mv /etc/apt/sources.list /etc/apt/sources.list.bak
echo "deb http://mirrors.163.com/debian/ jessie main non-free contrib" >/etc/apt/sources.list
echo "deb http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list
echo "deb-src http://mirrors.163.com/debian/ jessie main non-free contrib" >>/etc/apt/sources.list
echo "deb-src http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list
apt-get update 
apt-get install -y vim

相关命令解析


docker run -d -p 81:80 --name nginx_81 -v /350G/docker/html: /350G/docker/html -v /var/nginx/www/html/70:/var/www/html/70 --link dk_php56:php56 --link dk_php70:php70 --name dk_nginx nginx:1.10.3

docker 启动的命令详解:
run 启动
--name 为容器起一个名字 注意 目标容器放在最后面即可 格式:REPOSITORY:TAG
-d 后台运行被返回id
-v 挂载宿主机目录到容器中
-p 宿主机端口映射到容器中
--link <name or id>:alias 连接另外一个容器,使源容器和被连接的容器可以互相通讯并且接收容器可以获取源容器的环境变量等数据 name 和id是连接容器中的name和id ,alias是在源容器中使用的别名

深度好文,让你对docker更深入的了解 (https://www.zyku.net/centos/1705.html
-- 此文有一点不是很清楚,就dns配置的问题,要先宿主机中配置,因为是先访问本机的dns的,通过dns路由到127.0.0.1的ip,然后http请求,自然是80端口监听的,80端口就是docker的nginx服务器映射过来的啊,自然由docker的nginx容器解析,那这个容器里面也应该配置dns的,dns配置好之后就可以访问啦!是不是很开心呢

  • 接下来还有事情要做哦,就是将容器打包成镜像,方法如下:
docker 如何将容器保存为对象

-a :提交的镜像作者;

-c :使用Dockerfile指令来创建镜像;

-m :提交时的说明文字;

-p :在commit时,将容器暂停。

命令解释 

将container id 为54997691544c的容器 保存为一个名称为double_php_nginx:v1  的镜像 name:tag格式

docker commit -m "this is my first images" -a "guofu" 54997691544c  double_php_nginx:v1 


操作过程如下:

root@guofu-Lenovo-Product:/350G/docker/html# docker commit -m "this is my first images" -a "guofu" 54997691544c  double_php_nginx:v1 
sha256:be7c5c2d5e9f760b9c5c9689240ff30dc6f81ea7e6d843edaf3e90103dfaa347

  • 如何将镜像提交到远程呢?首先去https://cloud.docker.com注册一个会员吧,
    本地呢,命令如下
root@guofu-Lenovo-Product:/350G/docker/html# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: hongzhulei 
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
  • 登录完毕,开始push 镜像
//第一次总不是一帆风顺的,开始报错了
第一次提交报错
root@guofu-Lenovo-Product:/350G/docker/html# docker push  hongzhulei/double_php_nginx:v1
The push refers to repository [docker.io/library/double_php_nginx]
249afdc91439: Preparing 
de344a0ad635: Preparing 
db9dceda8ac9: Preparing 
5d6cbe0dbcf9: Preparing 
denied: requested access to the resource is denied

解决方案:docker tag be7c5c2d5e9f hongzhulei/double_php_nginx:v1    -解释:为容器打上标签 tag后面跟id +用户名:tag
docker push hongzhulei/double_php_nginx:v1

push 成功
root@guofu-Lenovo-Product:/350G/docker/html# docker push hongzhulei/double_php_nginx:v1
The push refers to repository [docker.io/hongzhulei/double_php_nginx]
249afdc91439: Pushing [==========================================>        ]  50.53MB/59.12MB
de344a0ad635: Pushed 
db9dceda8ac9: Pushing [==================================================>]  60.31MB
249afdc91439: Pushing [==================================================>]  60.82MB
249afdc91439: Pushing [====================================>              ]  42.75MB/59.12MB



至此,整个过程执行完毕,相信你也一定大功告成了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engi...
    ahohoho阅读 15,636评论 15 147
  • 一.docker 是什么: 2.安装docker 系统:ubuntu16.04 使用脚本自动安装 Docker 官...
    Black_Sun阅读 2,157评论 0 2
  • 《Docker从入门到实践》阅读笔记 原书地址: https://yeasy.gitbooks.io/docker...
    GuoYuebo阅读 11,437评论 1 39
  • 一、Docker 简介 Docker 两个主要部件:Docker: 开源的容器虚拟化平台Docker Hub: 用...
    R_X阅读 4,413评论 0 27
  • 虽然算不上是一个吃货级的人,但去到不同的地方,我还是能以积极的态度接受不同食物带给味蕾的新鲜体验。 来了美国之后,...
    爱美丽莎莎阅读 731评论 10 6