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.youkuaiyun.com/quuqu/article/details/51488966
私库登陆出现问题:
https://blog.youkuaiyun.com/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.youkuaiyun.com/u011596455/article/details/76862271
docker容器挂载宿主主机目录:
https://blog.youkuaiyun.com/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.youkuaiyun.com/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
### Docker入门教程 #### 什么是DockerDocker是一种用于开发、交付和运行应用程序的开源平台,它通过容器化技术简化了软件部署的过程。简单来说,Docker是一个用来装应用的容器,就像杯子可以装水,笔筒可以放笔一样,几乎任何程序都可以被放置在Docker中并进行隔离运行[^1]。 #### 安装与验证 为了确保Docker环境已经正确安装,在终端执行`docker run hello-world`命令。如果能够正常运行并返回`hello, world`消息,则表明Docker已成功配置[^2]。 #### 常用命令概述 以下是几个常用的Docker命令及其功能: - **帮助启动类** - `systemctl start docker`: 启动Docker服务。 - `systemctl stop docker`: 停止Docker服务。 - `systemctl restart docker`: 重启Docker服务。 - `systemctl status docker`: 查看Docker服务的状态。 - `systemctl enable docker`: 设置开机自启Docker服务。 - **查看信息类** - `docker info`: 显示Docker系统的整体信息。 - `docker --help`: 展示Docker的整体帮助文档。 - `docker 具体命令 --help`: 获取特定Docker子命令的帮助文档。 - **镜像管理类** - `docker images [-a|-q]`: 列出本地存储的所有镜像;加上参数-a可列出所有历史版本,加-q仅显示镜像ID。 - `docker search [某镜像名[--limit N]]`: 搜索公共仓库中的指定镜像,并可通过--limit控制结果数量。 - `docker pull [镜像名[:TAG]]`: 下载远程镜像至本地,默认不带标签则拉取最新版。 - `docker system df`: 统计镜像、容器以及数据卷占用空间情况。 - `docker rmi -f [镜像ID|镜像名[:TAG]|$(docker images -qa)]`: 删除一个或多个镜像,支持批量删除全部镜像。 - **容器操作类** - 创建并进入交互模式容器: ```bash docker run -it ubuntu bash ``` 这条指令基于Ubuntu基础镜像创建一个新的容器实例,并开启了一个交互式的Bash Shell供用户直接操控该容器内部环境[^3]。 --- #### 实践案例——构建第一个容器 假设我们希望尝试使用官方提供的Redis数据库作为例子来熟悉整个流程: 1. 使用`docker search redis`查找可用的Redis镜像; 2. 执行`docker pull redis:latest`获取最新的稳定版本; 3. 接着利用下面这条语句建立关联端口映射后的实际运行态容器: ```bash docker run -d -p 6379:6379 --name myredis redis:latest ``` 以上步骤展示了如何从零开始搭建属于自己的小型缓存服务器! --- 相关问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值