docker学习

docker 命令行启用远程控制命令

后台运行:
docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock &
直接运行
docker -d -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375

centos 6.8镜像升级python版本

使用centos镜像创建一个容器,进入bash命令下
docker run -ti centos:6.8 /bin/bash
使用yum下载wget
yum install wget
进入/user/local使用wget下载对应的python版本
wget --no-check-certificate https://www.python.org/ftp/python/2.7.6/Python-2.7.6.tgz
wget --no-check-certificate https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
编译前需要安装以下依赖
yum install openssl openssl-devel zlib-devel gcc -y
下载完成后使用tar解压
tar xvf Python-2.7.6.tgz
进入解压后的python-2.7.6目录下执行
vi ./Modules/Setup.dist
找到#zlib zlibmodule.c -I(exec_prefix)/lib -lz去掉注释并保存(即去掉#号)
编译
./configure
make && make install
查看之前的python命令的路径
which python
重命名之前python命令
mv /user/bin/python /user/bin/python2.6
新建一个新安装的python版本的解释器的软链接到/user/bin/python
ln -s /user/local/bin/python2.7 /user/bin/python
此时python新的版本安装成功了,但是还没有easy_install和pip包管理工具,再进行安装
此时yum不能使用了,因为yum命令实际上是一个python脚本,需要将yum命令中的/usr/bin/python更改为原来的版本
查看yum命令的路径
which yum
vi /usr/bin/yum
更改#!/usr/bin/python为原来的python版本解释器#!/usr/bin/python2.6
此时yum可以使用了
下载easy_install
wget -q http://peak.telecommunity.com/dist/ez_setup.py
python ez_setup.py
通过wget下载pip
wget --no-check-certificate https://github.com/pypa/pip/archive/1.5.5.tar.gz
下载完成之后解压
进入解压玩的pip目录下,执行
python setup.py install
此时pip安装成功
但是使用pip install xxx报错
Cannot fetch index base URL https://pypi.python.org/simple/ Could not find any downloads that satisfy the requirement requests
设置使用豆瓣源
vi ~/.pip/pip.conf
添加如下内容
[global]
index-url=http://pypi.douban.com/simple/
此时pip可以正常使用了
保存已经配置的环境
使用exit退出镜像

Paste_Image.png

记住这个id号,commit时用

使用已有镜像的容器创建镜像

docker commit -m "centos python2.7" -a "tyq" 667469 centospy2.7

常用命令

docker stats

docker stats命令用来监控容器资源消耗。不带任何参数默认展示宿主机上所有容器资源消耗情况。加上容器id,展示指定容器的资源消耗情况。
[CONTAINER]:以短格式显示容器的 ID。
[CPU %]:CPU 的使用情况。
[MEM USAGE / LIMIT]:当前使用的内存和最大可以使用的内存。
[MEM %]:以百分比的形式显示内存使用情况。
[NET I/O]:网络 I/O 数据。
[BLOCK I/O]:磁盘 I/O 数据。
[PIDS]:PID 号。

docker stats //展示宿主机上所有的容器资源消耗情况
docker stats e51bda257748 // 展示指定容器的资源消耗情况
CONTAINER ID        NAME          CPU %       MEM USAGE / LIMIT     M %     NET I/O        BLOCK I/O     PIDS
e51bda257748     runner-test      0.06%      14.21MiB / 125.6GiB   0.01%   0B / 0B         0B / 0B      69

docker ps

常见用法:

docker ps  //查看正在运行的容器
docker ps -a //显示所有状态的容器,容器的状态共有 7 种:created|restarting|running|removing|paused|exited|dead
docker ps --no-trunc  //显示完整输出,不截断

docker images

列出本地主机上已有的镜像

[root@sysc]# docker images
REPOSITORY                       TAG                 IMAGE ID            CREATED             SIZE
centos-7.4-gitlabci_sonar_base   latest              94b3d223ba58        6 months ago        3.7GB
gitlab/gitlab-runner-helper      x86_64-25b80a3a     93b98067b4e6        7 months ago        46.4MB
maven                            3-jdk-8             8c0e3cc0db61        7 months ago        525MB
centos-7.4-stage-2.7             app_deploy_3.3      2560a2773a72        12 months ago       2.51GB
sonarqube                        7.4-community       df1feff9aacf        2 years ago         830MB
gitlab/gitlab-runner             v10.8.2             538ba3128bd4        2 years ago         371MB

docker inspect

获取指定镜像的详细信息

docker inspect d49f67204306 //显示指定镜像的详细信息,包括环境变量\ip等

docker run

创建并启动容器

//以守护态启动一个bash终端。-t让docker分配一个伪终端并绑定到容器的标准输入,-i则让容器的标准输入保持打开
[root@sysc ~]# docker run -dti centos-7.4-gitlabci_sonar_base:latest /bin/bash 
d49f67204306a99643f0e902ee9701d78666f585a7a1690a421f63f19e4f16fe
// --name给容器指定名称为jay
[root@sysc ~]#docker run -dti --name jay centos-7.4-gitlabci_sonar_base:latest /bin/bash 
b2f32c28d4d688423237620d0e6f013d30dc7d0e9df1e6db27b97397e5a65234
//docker run的时候如果添加--rm参数,容器在终止后会立即删除。--rm和-d参数不能同时使用
[root@sysc ~]# docker run --rm -P --name tyq  sonarqube:7.4-community
2021.07.07 06:01:03 INFO  app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /opt/sonarqube/temp
2021.07.07 06:01:03 INFO  app[][o.s.a.es.EsSettings] Elasticsearch listening on /127.0.0.1:9001

docker stop

终止一个运行中的容器

[root@sysc ~]# docker stop e8cc   //e8cc为容器id前4位
e8cc

docker rm

[root@sysc ~]# docker rm e8cc   //删除id为e8cc的容器
e8cc

端口映射访问容器

//将本地的9004端口映射到容器的9000端口
[root@sysc ~]# docker run -d -p 0.0.0.0:9004:9000 sonarqube:7.4-community /opt/sonarqube/bin/run.sh
4f17cdccd8b6336c82df4529625b5d48ceeb1055718fd3407f9a687d7c976e42

docker logs

[root@sysc ~]# docker logs -f adbf6 //查看容器应用日志
2021.07.07 06:08:22 INFO  app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /opt/sonarqube/temp
2021.07.07 06:08:22 INFO  app[][o.s.a.es.EsSettings] Elasticsearch listening on /127.0.0.1:9001

docker port

查看指定容器映射的端口配置

[root@sysc ~]# docker port 263327 9000  //查看容器id为263327端口号为9000的映射配置 
0.0.0.0:9999

docker export

# 将id为e0933dd的容器导出到一个文件
[root@sys ~]# docker export e0933dd>sonarsqltest.tar

docker import

# 将上面导出文件使用docker import导入成为镜像
[root@sys ~]# cat sonarsqltest.tar |docker import - mysql:v1.1
sha256:d3de01a69edb90fd9342b0d584d7904bb08b046c852c55992a5467b58489784a

你可能感兴趣的:(docker学习)