################docker安装#####################

Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE。

社区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比如经过官方测试认证过的基础设施、容器、插件等。

社区版按照stable和edge两种方式发布,每个季度更新stable版本,如17.06,17.09;每个月份更新edge版本,如17.09,17.10。

一、安装docker

1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

通过 uname -r 命令查看你当前的内核版本

uname -r

2、使用 root 权限登录 Centos。确保 yum 包更新到最新。

sudo yum update

3、卸载旧版本(如果安装过旧版本的话)

sudo yum remove docker  docker-common docker-selinux docker-engine

4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

5、设置yum源

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

6、可以查看所有仓库中所有docker版本,并选择特定版本安装

yum list docker-ce --showduplicates | sort -r

7、安装docker

sudo yum install docker-ce  #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0
sudo yum install <FQPN> # 例如:sudo yum install docker-ce-17.12.0.ce

8、启动并加入开机启动

sudo systemctl start docker
sudo systemctl enable docker

9、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)

docker version

二、问题

1、因为之前已经安装过旧版本的docker,在安装的时候报错如下:

Transaction check error:
file /usr/bin/docker from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
file /usr/bin/docker-containerd from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
file /usr/bin/docker-containerd-shim from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
file /usr/bin/dockerd from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64

2、卸载旧版本的包

sudo yum erase docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64

3、再次安装docker

sudo yum install docker-ce

参考链接

1.docker使用国内镜像

vim /etc/docker/daemon.json

{
"registry-mirrors": ["http://hd1esep4.mirror.aliyuncs.com","https://registry.docker-cn.com"]
}

systemctl daemon-reload

systemctl restart docker

######################docker常用命令######################

docker --version 查看版本

docker stats 查看容器使用的系统资源(每秒刷新一次输出)

docker search nginx 从镜像空间查找nginx镜像

docker pull nginx 拉取nginx镜像

docker images 查看所有镜像

docker ps 查看运行中容器信息 (包含 containerId image ports 等信息)

docker ps -all 查看所有容器信息

docker inspect containerId 查看容器内网的ip地址等信息

docker image inspect  imageId 查看镜像详细信息

docker logs containerId 查看容器日志

docker cp localfile containerId:/usr/local  从宿主机拷贝文件到容器内指定目录

docker start containerId  启动容器

docker stop containerId  关闭容器

docker rm containerId  删除容器

docker rmi imageId 删除镜像 或者 docker rmi centos_nginx:v1

docker exec -it containerId  bash 进入容器(ctrl+p+q 保存修改退出)

docker commit containerId nginxserver:v5.0  将自定义的容器提交成镜像

docker stop $(docker ps -q) 关闭所有运行中的容器

docker rm $(docker ps -aq) 删除所有容器

docker  run  -p  80:80  -d  -v  $PWD/html:usr/share/nginx/html  nginx:latest【 -v  $PWD/html:usr/share/nginx/html   表示把当前路径下html目录映射为usr/share/nginx/html 也就是说主机下的html就是容器下的usr/share/nginx/html html内的文件修改和添加就等同于容器usr/share/nginx/html文件操作 外网访问就可以访问得到,就不用再登录容器操作文件了; -d 表示以守护进程启动; -p 宿主机端口:容器端口 映射; nginx:latest 已经pull下来的镜像】

apt-get update && apt-get install vim 容器内安装vi 工具

####################阿里云镜像仓库(也可自己搭一个镜像仓库)#############

登陆阿里云镜像
从registry中拉取镜像:
$ sudo docker pull registry.cn-shenzhen.aliyuncs.com/***/learn_test:[镜像版本号]
将镜像推送到registry:
$ sudo docker tag [ImageId] registry.cn-shenzhen.aliyuncs.com/***/learn_test:[镜像版本号]
$ sudo docker push registry.cn-shenzhen.aliyuncs.com/***/learn_test:[镜像版本号]

######################Dockerfile编写#######################

1.常用的Dockerfile 文件内容如下:

FROM java:8
VOLUME /tmp
ADD base_model_server_jg-0.0.1-SNAPSHOT.jar /app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
CMD ["--spring.profiles.active=isv"]
EXPOSE 8101

2.容器构建:

docker build -t centos_nginx:v1 Dockerfile路径

3.自定义ES Dockerfile

FROM java:8
RUN groupadd elasticsearch
RUN useradd elasticsearch -g elasticsearch RUN set -ex \
&& mkdir -p /usr/local/data/elasticsearch \
&& mkdir -p /usr/local/data/elasticsearch/data \
&& mkdir -p /usr/local/data/elasticsearch/logs RUN chown -R elasticsearch:elasticsearch /usr/local/data/elasticsearch COPY elasticsearch-6.2.2.tar.gz /usr/local/elasticsearch-6.2.2.tar.gz RUN tar -zxvf /usr/local/elasticsearch-6.2.2.tar.gz -C /usr/local/ && rm -rf /usr/local/elasticsearch-6.2.2.tar.gz COPY elasticsearch.yml /usr/local/elasticsearch-6.2.2/config/elasticsearch.yml RUN chown -R elasticsearch:elasticsearch /usr/local/elasticsearch-6.2.2 RUN chmod 777 /usr/local/data/elasticsearch/data VOLUME /usr/local/data/elasticsearch/data COPY docker-entrypoint.sh / RUN chmod 777 /docker-entrypoint.sh EXPOSE 9200 9300 ENTRYPOINT ["/docker-entrypoint.sh"] CMD ["elasticsearch"]
docker-entrypoint.sh 文件如下:
#!/bin/bash
su - elasticsearch -s /usr/local/elasticsearch-6.2.2/bin/elasticsearch
chmod 777 -R /usr/local/data/elasticsearch

  

#####################docker-compose编写#####################

docker-compose.yml 如下:

version: '2'
services:
eureka-server:
image: eureka/eurekaserver
hostname: eureka-server
ports:
- "8761:8761" config-server:
image: eureka/configserver
ports:
- "8888:8888"
links:
- "eureka-server" config-client:
image: eureka/configclient
ports:
- "8881:8881"
links:
- "eureka-server"
- "config-server"

#启动容器
在jwd_cloud/docker 目录下 执行如下命令
#构建/重建服务
docker-compose up --build
#以后台方式启动容器和容器内服务
docker-compose up -d
#显示当前项目容器
docker-compose ps

参考链接

#####################################注意###########################################

1.写启动脚本时注意

2. inux下解决docker端口映射到宿主机后外网无法访问的问题

解决办法:
# vi /etc/sysctl.conf
或者
# vi /usr/lib/sysctl.d/00-system.conf
添加如下代码:
net.ipv4.ip_forward=1
 
重启network服务
# systemctl restart network
 
查看是否修改成功
# sysctl net.ipv4.ip_forward
 
如果返回为“net.ipv4.ip_forward = 1”则表示成功了
 
################好用的docker工具########################

docker常用命令与容器创建的更多相关文章

  1. docker常用命令、镜像命令、容器命令、数据卷,使用dockerFile创建镜像,dockefile的语法规则。

    一.docker常用命令? 1. 常用帮助命令 1.1 docker的信息以及版本号 /* docker info 查看docker的信息 images2 docker本身就是一个镜像. docker ...

  2. 『现学现忘』Docker常用命令 — 21、容器常用命令(三)

    目录 13.进入正在运行的容器并以命令行交互 (1)方式一 (2)方式二 (3)attach和exec的区别 14.从容器内拷贝文件到主机上 15.Docker常用命令小结 (1)容器生命周期管理 ( ...

  3. docker常用命令,及进入Tomcat的WebApps发布目录(就是进入docker容器后台目录)

    docker常用命令,及进入Tomcat的WebApps发布目录(就是进入docker容器后台目录)   一.常用命令 1.显示所有的容器,包括未运行的 docker ps -a   2.启动容器.注 ...

  4. CentOS docker 常用命令

    yum install docker 安装服务 systemctl start docker.service 启动服务 systemctl enable docker.service 开机启动服务 d ...

  5. Docker常用命令汇总,和常用操作举例

    Docker命令 docker 常用命令如下 管理命令: container 管理容器 image 管理镜像 network 管理网络 node 管理Swarm节点 plugin 管理插件 secre ...

  6. 1021 docker常用命令和Jenkins搭建

    docker常用命令 1.镜像管理 docker pull (镜像名) # 默认拉取最新版本的镜像 docker pull (镜像名:版本号) #拉取指定版本的镜像 docker push (镜像名) ...

  7. docker 常用 命令

    http://os.51cto.com/art/201409/451117.htm 2.1 在测试机启动容器,安装ssh docker run -i -t ubuntu /bin/bash #此方式运 ...

  8. Docker | 第三章:Docker常用命令

    前言 上一章节,简单介绍了在CentOS下的Docker的安装过程,以及运行了一个官方提供的Hello,World镜像运行了第一个Docker.就像上一章中,验证Docker是否安装成功,我们执行的是 ...

  9. Docker 常用命令总结

    Docker 常用命令总结   回到顶部 镜像相关 搜索 docker search *image_name* 下载 docker pull *image_name* 查看 docker images ...

随机推荐

  1. OpenStack Blazar 架构解析与功能实践

    目录 文章目录 目录 Blazar Blazar 的安装部署 Blazar 的软件架构 Blazar 的资源模型与状态机 Blazar 的主机资源预留功能(Host Reservation) 代码实现 ...

  2. nodejs相关

    安装: 1:下载 Node.js 安装包及源码下载地址为:https://nodejs.org/en/download/. 32 位安装包下载地址 : https://nodejs.org/dist/ ...

  3. Jmeter测试结果分析(下)

    Jmeter测试结果分析(下) 前文再续,续接上一回.上一篇讲了如何利用Assertion将测试结果进行初步的筛选.那么,当我们拿到了测试结果之后,我们应该如何去看待它们呢?它们又是怎么来的呢? 一. ...

  4. 内网gitlab访问外网

     外网要访问内网,内网出口必须有公网ip,且外网访问内部网络可以用花生壳,可以用主机端口映射  写ansible调api,打通内网到阿里云的master节点   如何将公司内网与云服务器内网打通 参照 ...

  5. C++ vector的详细用法

    vector容器类型 vector容器是一个模板类,可以存放任何类型的对象(但必须是同一类对象).vector对象可以在运行时高效地添加元素,并且vector中元素是连续存储的.vector的构造 函 ...

  6. sshpass密码

    使用sshpass sshpass -p "password" scp -r user@example.com:/some/remote/path /some/local/path ...

  7. fiddler的使用:抓包定位、模拟弱网

    一.fiddler抓包定位 Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(cookie,htm ...

  8. flask 框架快速入门

    flask 框架快速入门 搭建一个简易flask项目 首先使用 Pycharm创建flask项目 运行flask项目 1.使用Pycharm搭建flask项目 (如果Pycharm新建项目中未出现该图 ...

  9. TensorFlow实战第三课(可视化、加速神经网络训练)

    matplotlib可视化 构件图形 用散点图描述真实数据之间的关系(plt.ion()用于连续显示) # plot the real data fig = plt.figure() ax = fig ...

  10. 深入理解java:4.3.1. 框架编程之MyBatis---SQL语句执行的完整流程

    Mybatis的整个的执行流程.如下图所示: 原理详解: MyBatis应用程序根据XML配置文件创建SqlSessionFactory, SqlSessionFactory在根据配置,配置来源于两个 ...