Docker基本使用记录

使用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.启动镜像并做出修改

 
  1. docker run -it centos /bin/bash

[root@afcaf46e8305 /]#
注意afcaf46e8305是产生的容器ID,前面运行的时候不要-d后台运行了,不然无法进入容器交互执行模式:

安装vim并且退出容器:

 
  1. yum install -y vim
  2. exit

2.把容器打包成镜像

 
  1. docker commit afcaf46e8305 centos-vim

3.查看镜像centos-vim

 
  1. docker images | grep centos-vim

查看镜像的详细信息:

 
  1. docker inspect centos-vim:afcaf46e8305

4.使用centos-vim这个镜像

 
  1. docker run -it centos-vim /bin/bash

发现可以直接使用vim了,而不需要重新安装:

 
  1. vim --version

5.OPTIONS说明

-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。
将容器a404c6c174a2 保存为新的镜像,并添加提交人信息和说明信息。

 
  1. docker commit -a "runoob.com" -m "my apache" a404c6c174a2 mymysql:v1

docker save和docker export的区别

总结一下docker save和docker export的区别:

  1. docker save保存的是镜像(image),docker export保存的是容器(container);
  2. docker load用来载入镜像包,docker import用来载入容器包,但两者都会恢复为镜像;
  3. docker load不能对载入的镜像重命名,而docker import可以为镜像指定新名称。

使用 -p 参数时,可以指定要映射的端口,并且在一个指定的端口上只可以绑定一个容器。支持的格式有:

  1. IP:HostPort:ContainerPort
  2. IP:ContainerPort
  3. HostPort:ContainerPort

下面开启一个 nginx 服务,将本机 8080 端口映射到容器的 80 端口:

?

1

2

3

4

5

6

$ docker run -d -p 8080:80 nginx

23e725098712d061a1382f33d6fe54da23ae37597a62f8debdd3731b5f9cc4b9

 

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
 

引用:

https://blog.csdn.net/mtgege/article/details/78462290

https://blog.csdn.net/Fly_hps/article/details/81407332

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值