Docker入门

什么是Docker?
这条比较好可以先看看:https://baijiahao.baidu.com/s?id=1591887487395526427&wfr=spider&for=pc

  • Docker is the world’s leading software containerization platform(Docker是世界领先的软件容器平台)
  • Docker公司开发、开源、托管在GitHub
  • 跨平台,支持windows、Macos、Linux
    Docker思想
  • 集装箱
  • 标准化
    运输方式
    存储方式
    API接口
  • 隔离
    Docker解决的问题
  • 解决了运行环境不一致所带来的问题
  • 隔离性,多个用户之间的资源不共用,每个用户都有自己的一块资源
  • 标准化,能够快速扩展,弹性伸缩
    三个词汇:Build、Ship、Run

Docker镜像
Docker仓库

  • hub.docker.com
  • c.163.com
  • 自己搭建

Docker安装(Linux)
在centos和redhat上安装docker

http://www.imooc.com/article/16448

在ubuntu上安装docker
1.检查内核版本

uname -r

2.切换到root用户下

su

3.保证apt -get是最新版本

apt-get update

4.安装docker.io

apt-get install docker.io

5.如果安装最新版本

curl -s https://get.docker.com|sh

6.查看版本

docker version

7.发现Cannot connect to the Docker daemon. Is the docker daemon running on this host?需要启动服务

service docker start

8.再查看docker版本

docker version

会看到以下结构

Client:
Version: 1.12.3
xxx
Server:
Version 1.12.3
xxx

说明安装成功。

第一个docker镜像
1.镜像拉取:

docker pull [OPTIONS] NAME[:TAG]

2.查看本机镜像

docker images [OPTIONS] [NAME[:TAG]]

docker容器
1.运行镜像

docker run [OPTIONS] NAME[:TAG] [COMMAND][ARG...]

Docker运行Nginx
持久运行的容器
前台挂起&后台运行
进入容器内部

1.拉取nginxjingx

docker pull hub.163.com/library/nginx:latest
docker images
//在前台启动一个镜像
docker run hub.c.163.com/library/nginx  

2.查看机器上正在运行的容器

docker ps

3.后台运行镜像

docker run -d 
//Run container in background and print container

返回一个容器id, containerid
4.进入容器内部

docker exec -it f4 bash  //f4是容器id前缀

进入了一个类似于Linux系统的结构

which nginx //找nginx路径
ps -ef //查看进程
exit  //退出

5.停止镜像

docker stop f4

端口映射
1.映射到指定端口

docker run -d -p 8080:80 hub.c.163.com/library/nginx  //80是容器的端口,8080是映射到主机的端口
netstat -na:grep 8080

2.映射到随机端口

docker run -d -P hub.c.163.com/library/nginx
docker ps  //可以查看到随机端口

制作自己的镜像
Dockerfile
docker build
Jpress: http://jpress.io/
1.创建dockerfile

touch Dockerfile
vi Dockerfile
docker pull hub.c.163.com/library/tomcat:latest

注意:可以到你要拉取镜像的仓库网站上找到镜像的信息和使用方式

from hub.c.163.com/library/tomcat
MAINTAINER xiaochuan xxx@1163.com
COPY 	jpress.war  /usr/local/tomcat/webapps
docker build .

这样再运行docker images会发现镜像没有名字,执行以下(name:tag)命令可以增加名字和版本,REPOSITORY->jpress; TAG->latest

docker build -t jpress:latest .

镜像重命名

docker tag IMAGEID(镜像id) REPOSITORY:TAG(仓库:标签)

运行

docker run -d -p 8888:8080 jpress
docker ps
netstat -na:grep 8888

访问以下

http://localhost:8888/jpress

发现需要mysql

拉取MySQL镜像

docker pull hub.c.163.com/library/mysql:latest
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=000000 -e MYSQL_DATABASE=jpress hub.c.163.com/library/mysql:latest
docker ps
netstat -na:grep 3306

重启容器

docker restart xxx..

其他问题:
https://www.itency.com/topic/show.do?id=479285
https://blog.csdn.net/quuqu/article/details/51488966
私库登陆出现问题:
https://blog.csdn.net/mustimproved/article/details/54633488
目录映射等问题:
http://www.runoob.com/docker/docker-run-command.html
解决docker容器中文乱码:
https://www.cnblogs.com/z-belief/p/6148463.html
Docker容器和主机如何互相拷贝传输文件:
https://blog.csdn.net/u011596455/article/details/76862271
docker容器挂载宿主主机目录:
https://blog.csdn.net/zero__007/article/details/80641616
https://www.cnblogs.com/xiaochangwei/p/8205067.html

sudo docker run -d -p 8010:8081 -v /home/wsn/services/monitor-center/docker2/monitor-center:/home/ubuntu/monitor-center 2e42

docker镜像内的文件与本地文件互相拷贝:
https://blog.csdn.net/hewei_bj/article/details/80200050

修改docker时区1(此种方法貌似不行):
monitor-center:

sudo docker cp /etc/localtime 98f5:/etc

可能因为版本的问题或者挂载目录的问题对于monitor-center用上面的命令不好使,用以下方法:
把本地的/etc/localtime先copy到挂载目录中,在进入容器内部将localtime剪切到/etc中。

修改docker时区:

docker run -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime -ti xxx bash

保存镜像到本地:

docker save > scan_iie_4.0.tar.gz scan_iie:4.0

加载本地镜像:

docker load < scan_iie_4.0.tar.gz
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值