使用docker安装ubuntu镜像
查找Ubuntu镜像
docker search ubuntu
安装Ubuntu镜像
docker pull ubuntu
查看docker镜像
docker images
运行docker镜像
docker run -it -d --name ubuntu_test -p 8088:80 ubuntu
-name自定义容器名,-p指定端口映射,前者为虚拟机端口,后者为容器端口,成功后返回id
查看所有启动的容器(查看所有容器加 -a)
docker ps
根据id查看容器信息
docker images
进入docker(或者把容器id改为容器名,也可以进入)
docker exec -it 98 /bin/bash
容器里面也是ubuntu虚拟机,同样适用Linux命令
退出容器
exit
停止容器
docker stop id
更改名字
docker rename 原容器名 新容器名
制作docker镜像
docker commit 98 ubuntu_test1:1.0
1.0为版本号,需要添加,镜像名字随意
查看镜像是否创建
此时镜像只能本地使用,在其他机器使用需打包
打包镜像并查看
docker save -o ubuntu_test1.tar ubuntu_test1:1.0
获取国内镜像源
地址:https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/
备份系统自带的更新源配置文件
配置镜像源
输入命令:gedit source.list 打开文件,把文件内容全部删除,再把更新源路径粘贴进来。
更新源
安装自己需要的应用
其他的一些命令
sudo apt-get update 更新源
sudo apt-get install package 安装包
sudo apt-get remove package 删除包
sudo apt-cache search package 搜索软件包
sudo apt-cache show package 获取包的相关信息,如说明、大小、版本等
sudo apt-get install package --reinstall 重新安装包
sudo apt-get -f install 修复安装
sudo apt-get remove package --purge 删除包,包括配置文件等
sudo apt-get build-dep package 安装相关的编译环境
sudo apt-get upgrade 更新已安装的包
sudo apt-get dist-upgrade 升级系统
sudo apt-cache depends package 了解使用该包依赖那些包
sudo apt-cache rdepends package 查看该包被哪些包依赖
sudo apt-get source package 下载该包的源代码
sudo apt-get clean && sudo apt-get autoclean 清理无用的包
sudo apt-get check 检查是否有损坏的依赖
-------------------------------------------------------------- 使用docker-----------------------------------------------------
1.启动镜像并做出修改
- docker run -it centos /bin/bash
[root@afcaf46e8305 /]#
注意afcaf46e8305是产生的容器ID,前面运行的时候不要-d后台运行了,不然无法进入容器交互执行模式:
安装vim并且退出容器:
- yum install -y vim
- exit
2.把容器打包成镜像
- docker commit afcaf46e8305 centos-vim
3.查看镜像centos-vim
- docker images | grep centos-vim
查看镜像的详细信息:
- docker inspect centos-vim:afcaf46e8305
4.使用centos-vim这个镜像
- docker run -it centos-vim /bin/bash
发现可以直接使用vim了,而不需要重新安装:
- vim --version
5.OPTIONS说明
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。
将容器a404c6c174a2 保存为新的镜像,并添加提交人信息和说明信息。
- docker commit -a "runoob.com" -m "my apache" a404c6c174a2 mymysql:v1
docker save和docker export的区别
总结一下docker save和docker export的区别:
- docker save保存的是镜像(image),docker export保存的是容器(container);
- docker load用来载入镜像包,docker import用来载入容器包,但两者都会恢复为镜像;
- docker load不能对载入的镜像重命名,而docker import可以为镜像指定新名称。
使用 -p 参数时,可以指定要映射的端口,并且在一个指定的端口上只可以绑定一个容器。支持的格式有:
- IP:HostPort:ContainerPort
- IP:ContainerPort
- HostPort:ContainerPort
下面开启一个 nginx 服务,将本机 8080 端口映射到容器的 80 端口:
1 2 3 4 5 6 |
|
170217、nginx 安装时候报错:make: *** No rule to make target `build', needed by `default'. Stop.
出现此种情况,是linux系统没有安装先决条件
1、GCC——GNU编译器集合(GCC可以使用默认包管理器的仓库(repositories)来安装,包管理器的选择依赖于你使用的Linux发布版本,包管理器有不同的实现:yum是基于Red Hat的发布版本;apt用于Debian和Ubuntu;yast用于SuSE Linux等等。)
RedHat中安装GCC:
yum install gcc
Ubuntu中安装GCC:
apt-get install gcc
2、PCRE库(Nginx编译需要PCRE(Perl Compatible Regular Expression),因为Nginx的Rewrite模块和HTTP核心模块会使用到PCRE正则表达式语法。这里需要安装两个安装包pcre和pcre-devel。第一个安装包提供编译版本的库,而第二个提供开发阶段的头文件和编译项目的源代码,这正是我们需要的理由。)
RedHat中安装PCRE:
yum install pcre pcre-devel
Ubuntu中安装PCRE:
apt-get install libpcre3 libpcre3-dev
3、zlib库(zlib库提供了开发人员的压缩算法,在Nginx的各种模块中需要使用gzip压缩。如同安装PCRE一样,同样需要安装库和它的源代码:zlib和zlib-devel。)
RedHat中安装zlib:
yum install zlib zlib-devel
Ubuntu中安装zlib:
apt-get install zlib1g zlib1g-dev
4、OpenSSL库(在Nginx中,如果服务器提供安全网页时则会用到OpenSSL库,我们需要安装库文件和它的开发安装包(openssl和openssl-devel)。)
RedHat中安装OpenSSL:
yum install openssl openssl-devel
Ubuntu中安装OpenSSL:(注:Ubuntu14.04的仓库中没有发现openssl-dev):
apt-get install openssl openssl-dev
注意:要不关闭防火墙,要不然放不了nginx页面
补充1:Docker端口映射
docker run -it -d -p 127.0.0.1::4000 docker.io/centos:latest /bin/bash
https://www.cnblogs.com/wholj/p/10551999.html
补充2 :Docker的export import
简单普及一下,docker的save保存镜像(load与其对应),docker的export导出容器(import与其对应),但是两者load/import的时候都是生成镜像。
实际业务:公司前辈大神(已离职)写的服务已经完整的布置在docker中,里面有nginx、uwsgi和自己的微服务等,如果要全部重新布置完全没有必要。只需要将复用docker容器即可。我将线上的docker导成tar文件,在测试集群上导入并配置,下面是我的操作步骤:
1.查到你需要导出容器的ID(CONTAINER ID)
sudo docker ps
2.将容器导出(一般是线上或某台常用的机器)
sudo docker export 9ff8e203b25e > docker20190123export.tar
3.将容器在另一台机器导入
如果docker导入的机器和导出的机器不能互通,只能先下载到本地中转(我是这么操作的),然后新需要导入docker的机器上执行以下命令(在tar包所在的目录),dockerservice:1.0 是新镜像的名字,可以随意命名。
cat ./docker20190123export.tar | sudo docker import - dockertest:1.0
输入sudo docker images可以看到刚才导入的新镜像
4.根据自己的需要开启容器
sudo docker run -dit -v /dep:/dep -p 80:80 -p 7000-7001:7000-7001 dockertest:1.0 /bin/bash
-v 是docker目录挂载,冒号左边是本地目录,右边是docker内目录
-p 是docker端口映射,冒号左边是本地端口,右边是docker内端口
5.进入容器
#查看刚才开启的容器id
sudo docker ps -a
#根据容器id进入docker
sudo docker exec -it 4ae1aef8113c /bin/bash
补充3:NodeJs的配置安装
下载 nodejs 安装包 wget https://nodejs.org/download/rc/v8.9.1-rc.1/node-v8.9.1-rc.1.tar.gz
解压 tar -zxvf node-v8.9.1-rc.1.tar.gz
进入 nodejs 解压文件夹 cd node-v8.9.1-rc.1
运行 configure 脚本来配置源代码 ./configure
编译 make install
删除下载的安装包 rm node-v8.9.1-rc.1.tar.gz
npm
sudo apt install npm
sudo npm install npm@latest -g
升级 nodejs
sudo npm install -g n
最新版 sudo n latest
稳定版 sudo n stable
使用pm2管理nodejs进程
安装 npm install -g pm2
运行服务 pm2 start app.js –name [appName]
查看状态 pm2 monit
查看单一状态 pm2 describe [app id]
查看log pm2 logs [appName] [–lines 1000]
重启服务 pm2 restart [app id]
停止服务 pm2 stop [app id]
查看应用列表 pm2 list
网页 监控 pm2 web
随系统启动 pm2 startup ubuntu
引用: