docker用法 镜像是只读文件,感觉像是一个系统安装iOS文件 容器是用来运行镜像并对镜像进行读写的,像是ios安装后的系统

        楼主最近实习接近尾声,之前的写的工程打包成exe在生产环境下的windows的跳板机。 后来最近要走的时候,公司的李哥,觉得这样不合理,使用生产环境下的机器访问跳板机有公网的跳板机转发到公司有公网的linux服务器,用docker打包管理,这是docker的使用背景。

对docker核心思想介绍一下

Docker为什么好用:docker利用虚拟化技术虚拟出应用程序的运行环境,而主机仅需安装docker本身,并不需要再安装其它的环境。其好处如下:

1. 应用程序的运行环境彼此隔离,互不干扰。

2. 避免繁琐的安装和配置工作,维护成本大大降低。

镜像是只读文件,感觉像是一个系统安装iOS文件

容器是用来运行镜像并对镜像进行读写的,像是ios安装后的系统,自己本身也能再打包成一个ios文件,容器关闭后不保存修改的数据,再次打开恢复到镜像最初的数据

首先第一步就是安装docker。docker是个容器需要像安装一个软件一样,安装docker

ubuntu 中安装docker,这两种方法我都尝试了都是靠谱的方法,操作系统是ubuntu16.04

使用curl安装
1.查看是否有curl指令: whereis curl, 如果没有curl 需要sudo apt-get curl
2.curl -sSl https://get.docker.com | sudo sh
3.查看docker版本 sudo docker version 
4. run一个样例sudo docker run ubuntu echo "Helloworld" 

使用其他方法安装docker
#!/bin/sh
#install curl
apt-get update
apt-get install -y curl
#install-docker
curl -fsSL get.docker.com -o get-docker.sh
sh get-docker.sh --mirror Aliyun  
#install speeder
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://573b0ee5.m.daocloud.io  
systemctl restart docker.service  
 #test docker
docker run hello-world  

docker必须在有系统权限的用户下面,所以需要用root装,不过装完之后可以将普通用户加入docker组,如下,笔者亲自试验过

将用户添加到docker 用户组,在系统用户下操作

1. sudo groupadd docker
2. sudo gpasswd -a peixiankun docker
3. sudo service docker restart
4. docker -version将用户添加到docker 用户组
1. sudo groupadd docker
2. sudo gpasswd -a peixiankun docker
3. sudo service docker restart
4. docker -version
添加用户组之后要logout一下,
docker version
echo run ubuntu echo "Helloworld"
启动一个docker 上面建了一个docker名字是ubuntu 输出是helloworld
docker run -i -t ubuntu /bin/bash   //-t让docker分配一个伪终端并绑定到容器的标准输入上, -i则让容器的标准输入保持打开.



会进入之前的ubuntu的docker主目录下
docker ps 返回所有正在执行的容器
docker ps -a  查看所有的容器
docker inspect  ‘’容器id‘’查看容器所有信息
docker run --name=container01 -i -t ubuntu /bin/bash 运行run命令时候,定义容器的名字 exit后,docker ps -a
docker 重新启动建立过已经停止的容器 docker start  -i container01

docker run -i -t ubuntu /bin/bash
ctrl + p + q 退出,在后台运行 利用
docker ps 看每一步的效果
docker attach id 或者容器名字 会进入后台运行的程序,
exit会直接退出
docker ps 看每一步的效果

启动守护式容器
docker run --name dc1 -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done" ///使用守护式容器,也是让他在后台执行,但是执行结束后还会停止,所以用一个while去模拟
docker ps 查看守护式进程
docker logs dc1 查看所有日志,看不出日志的意义
docker logs -t dc1 加上日志的时间
docker logs -tf dc1 日志加上时间一直打印, ctrl +c 退出
docker logs -tf --tail 10 dc1 最新的十条
docker logs -tf --tail 0 dc1 最新的一条
docker top dc1 查看哪些进程正在运行
docker exec -i -t dc1 /bin/bash 在运行的容器中执行新的容器
crtl + p  退出容器, 
查看docker top dc1 正在运行查看
docker stop dc1
docker kill dc1

 

容器的端口映射

docker run -P -i -t ubuntu /bin/bash 所有暴露的端口映射出去
containerPort
docker run -p  80 -i -t ubuntu /bin/bash    //指定容器端口 宿主机端口是随机映射的
hostPort: containerPoert
docker run -p 8080:80 -i -t ubuntu /bin/bash   //指定宿主机端口和容器端口端口
ip::containerPort
docker run -p 0.0.0.0:80 -i -t ubuntu /bin/bash //指定ip和容器端口
ip:hostPort:containerPort 
docker run -p 0.0.0.0:8080:80 -i -t ubuntu /bin/bash指定ip端口
Docker Demo
//创建映射80端口的交互式容器
docker run -p 80 --name web -i -t ubuntu /bin/bash
//安装Nginx
apt-get install
apt-get install -y nginx
//安装文本编辑器
apt-get install vim
//创建静态页面
mdkir -p /var/www/html
cd /var/www/html 进入静态页面
<html> 
<head> 
    <title> Nginx in docker</title>
</head>

<body> Hello , I'm webiste in docker</body>
</html>

可见https://blog.csdn.net/weixin_41907511/article/details/85337505

强势推荐上面的连接和下面的video视频

https://www.bilibili.com/video/av33318920/?p=15

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值