首先,我是在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)
如下图
然后再执行一下面的命令就可以了,切忌不要听网上说什么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 效果图如下
- 不想要了,想删除某个镜像,记住要先停掉所有的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
至此,整个过程执行完毕,相信你也一定大功告成了