Docker的使用

安装配置

# 清除旧版本
$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine

# 依赖安装
$ sudo yum install -y yum-utils \
           device-mapper-persistent-data \
           lvm2

# 命令行安装
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
$ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
$ sudo yum makecache fast
$ sudo yum install docker-ce

#  脚本安装
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh

# 查看版本
$ docker version
$ docker info

# 启动docker进程
$ sudo systemctl enable docker
$ sudo systemctl start docker

# 重启docker进程,修改配置后执行
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

# 删除Docker CE
$ sudo yum remove docker-ce
$ sudo rm -rf /var/lib/docker

# 报错删除安装过的版本
$ sudo yum erase docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
$ sudo yum install docker-ce

# 镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://j6y1bddb.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
  • 允许所有ip访问
    /etc/systemd/system/multi-user.target.wants/docker.service
    /lib/systemd/system/docker.service
    ExecStart 后面添加-H tcp://0.0.0.0

镜像使用

  • https://hub.docker.com/
# 列出本机可用镜像
$ docker images

# 查找镜像
$ docker search ubuntu

# 获取镜像
$ docker pull ubuntu:15.10

# 提交容器副本,根据容器内容生成新的镜像,-m:提交的描述信息,-a:指定镜像作者
$ docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2

# 构建镜像,-t:指定要创建的目标镜像名
$ docker build -t runoob/centos:6.7 .

# 修改镜像标签
$ docker tag 860c279d2fec runoob/centos:dev

# 删除镜像
$ docker rmi image_name/container_id

容器使用

# 以镜像启动容器,调用镜像的接口
$ docker run ubuntu:15.10 /bin/echo "Hello world"

# -i允许对容器交互,-t新容器里指定终端,exit退出
$ docker run -i -t ubuntu /bin/bash

# -d后台运行
$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"

# 查看运行容器
$ docker ps -a

# 查看最后一次创建容器
$ docker ps -l 

# 查看容器内部运行的进程
$ docker top bf08b7f2cd89

# 查看后台运行日志
$ docker logs 2b1b7a428627

# -f如tail-f,查看应用日志追踪
docker logs -f bf08b7f2cd89

# json返回容器的配置和状态
docker inspect

# 启动,重启,停止,进入,删除容器
$ docker start container_name/container_id
$ docker restart container_name/container_id
$ docker stop container_name/container_id
$ docker attach container_name/container_id
$ docker rm container_name/container_id

容器连接

# 把容器5000端口映射到本地端口,--name:标识命名容器
$ docker run -d -P --name webapp training/webapp python app.py

# -d后代运行,-p指定容器ip,内部和主机端口默认tcp,运行容器指向镜像的python应用
$ docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py

# 查看网络端口
$ docker port bf08b7f2cd89 5000

# 远程访问
$ docker -H 服务器IP地址 info

构建镜像文件

  • Dockerfile
FROM python:2.7
MAINTAINER Angel_Kitty <angelkitty6698@gmail.com>
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
EXPOSE 5000
ENTRYPOINT ["python"]
CMD ["app.py"]
FROM nginx
MAINTAINER Angel_Kitty <angelkitty6698@gmail.com>
RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html
  • 构建Dockerfile
$ mkdir app
$ cd app
$ touch Dockerfile
$ vi Dockerfile
$ docker build -t zk/app:v1 .
  • 运行
$ docker run --name nginx_web -d -p 8080:80   angelkitty/nginx_web:v1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值