docker的简单操作
- 直接开始
- 查看系统的内核版本高于 3.10
命令查看:uname -r
[root@VM_0_3_centos ~]# uname -r
3.10.0-514.26.2.el7.x86_64
- 升级软件包及内核版本
// 升级软件包及内核版本
[root@VM_0_3_centos ~]# yum update
- 安装docker
//1.安装docker(不知道注释怎么写,就随便用了个双斜杠)
[root@VM_0_3_centos ~]# yum install docker
//2.启动docker
[root@VM_0_3_centos ~]# systemctl start docker
//3.查看版本号
[root@VM_0_3_centos ~]# docker -v
Docker version 1.13.1, build b2f74b2/1.13.1
//4.将docker 服务设为开机启动
[root@VM_0_3_centos ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
//5.停止docker
[root@VM_0_3_centos ~]# systemctl stop docker
- 帮助命令
# 验证
[root@VM_0_3_centos ~]# docker version
# 描述
[root@VM_0_3_centos ~]# docker info
# 帮助(想成为高手,多用用这个命令)
[root@VM_0_3_centos ~]# docker --help
- 镜像操作
//1.检索
//xxx填你需要搜索的,最好去 https://hub.docker.com/搜索
[root@VM_0_3_centos ~]# docker search xxx
//2. 拉取
[root@VM_0_3_centos ~]# docker pull mysql:5.7.26
//3.查看镜像列表
[root@VM_0_3_centos ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/redis latest 3c41ce05add9 5 days ago 95 MB
docker.io/mysql 5.7.26 7faa3c53e6d6 5 weeks ago 373 MB
[root@VM_0_3_centos ~]#
//4.删除镜像
[root@VM_0_3_centos ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/redis latest 3c41ce05add9 5 days ago 95 MB
docker.io/mysql 5.7.26 7faa3c53e6d6 5 weeks ago 373 MB
[root@VM_0_3_centos ~]# docker rmi 7faa3c53e6d6
Untagged: docker.io/mysql:5.7.26
Untagged: docker.io/mysql@sha256:196fe3e07006352b4
Deleted: sha256:7faa3c53e6e8013b1fff1c4d9
Deleted: sha256:bada5edfc0f1d4a83c227bc7a153
Deleted: sha256:cb6436ac11f84e3e15073588fc7
[root@VM_0_3_centos ~]#
- 容器操作
详细可以点击下面网站
https://docs.docker.com/engine/reference/commandline/docker/
1.运行,比如运行ES
[root@VM_0_3_centos ~]# docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m"
-d -p 9200:9200 -p 9300:9300 --name ES_0617 d0b291d7093b
2 停止容器
[root@VM_0_3_centos ~]# docker stop a1bb24e689b8
a1bb24e689b8
//2.2 强制停止
[root@VM_0_3_centos ~]# docker kill a1bb24e689b8
3进入退出容器
//3.1 退出容器
[root@容器内 ~]# exit //容器停止退出
//3.2 ctrl + P + Q 不停止退出
//3.3 进入
[root@VM_0_3_centos ~]# docker exec -t id bashShell
[root@VM_0_3_centos ~]# docker exec -it 2eac68bdae2b /bin/bash
//3.4 重新进入
[root@VM_0_3_centos ~]# docker attach id
4.查看容器日志
//-t:是加入时间戳
//-f:跟随最新的日志打印
//--tail 数字:显示最后多少条
[root@VM_0_3_centos ~]# docker logs id
//4.1
[root@VM_0_3_centos ~]# docker logs -f -t --tail id
5启动
[root@VM_0_3_centos ~]# docker start id
6.删除
[root@VM_0_3_centos ~]# docker rm id
//6.1 批量删除(在自己的虚拟机上测试着玩)
//1
[root@VM_0_3_centos ~]# docker ps -a -q|xargs docker rm
//2
[root@VM_0_3_centos ~]# docker rm -f $(docker ps -a -q)
7.容器列表(这是运行中的)
[root@VM_0_3_centos ~]# docker ps
//7.1 容器列表(全部)
[root@VM_0_3_centos ~]# docker ps -a
8 拷贝
//在主机(将容器中的yum.log文件拷贝到主机上)
[root@VM_0_3_centos ~]# docker cp id:/tmp/yum.log /root
9 提交
//提交一个副本,成为一个新的镜像(以容器为模板,生产一个新的镜像)
//docker commit -m="描述" -a="作者" 容器id 镜像名:[标签]
//我也不知道能不能写中文
[root@VM_0_3_centos ~]# docker commit -m=”哈哈“ -a="披着床单的小王子" 模板容器id 自定义镜像名(空间名/镜像名):1.2
10 继承
//--volumes-from
//实例,建立doc2容器,继承doc1 属于镜像名
docker run -it --name doc2 --volumes-from doc1 镜像名
//共享的文件夹里的东西共享,新建的共享,文件自带的不知道共不共享
//* 其他
//8.1 进程
[root@VM_0_3_centos ~]# docker top 容器id
//8.2 结构
[root@VM_0_3_centos ~]# docker inspect 容器id
20 具体的
1)安装mysql
docker run --name mysql01 -p 3306:3306
-v /yyong/mysql/conf:/etc/mysql/conf.d
-v /yyong/mysql/logs:/logs
-v /yyong/mysql/data:/var/lib/mysql
-e MYSQL_ROOT_PASSWORD=123456
-d mysql:5.7
--lower_case_table_names=1
备份数据库
docker exec mysql服务容器ID sh -c 'exec mysqldump --all-databases -uroot -p"123456"' > /yyong/all-databases.sql
2)安装redis
docker run --name myredis -p 6379:6379
-v /yyong/myredis/data:/data
-v /yyong/myredis/conf/redis.conf:/usr/local/etc/redis/redis.conf
-d redis:3.2 redis-server /usr/local/etc/redis/redis.conf
--appendonly yes
--requirepass "123456"
3)安装Tomcat
先将配置文件复制出来
[root@VM_0_3_centos ~]# docker cp id:/usr/local/tomcat/conf /yyong/tomcat_door/
docker run --name tomcat_door -d -p 80:8080
-v /yyong/tomcat_door/webapps:/usr/local/tomcat/webapps
-v /yyong/tomcat_door/conf:/usr/local/tomcat/conf
id
webapps:放项目
cert:放ssl验证书
conf:配置文件
[root@VM_0_3_centos ~]# docker run --name tomcat_8989_https_test -d -p 8989:8080
-v /yyong/tomcat_8989_https_test/webapps:/usr/local/tomcat/webapps
-v /yyong/tomcat_8989_https_test/cert:/usr/local/tomcat/cert
-v /yyong/tomcat_8989_https_test/conf:/usr/local/tomcat/conf 45bc18d971f4
//
6 Docker容器数据卷
类似redis的持久化
1. 使用命令添加
[root@VM_0_3_centos ~]# docker run -it -v /宿主机绝对路劲目录:/容器内目录 镜像名
2. DockerFile添加
FROM java:8
MAINTAINER yyong
ADD demo-0.0.1-SNAPSHOT.jar demo.jar
EXPOSE 80
ENTRYPOINT ["java","-jar","demo.jar"]
4. 创建好Dockerfile文件之后,执行命令 构建镜像:
docker build -t my/demo .
注意最后的 . 表示 Dockerfile 文件在当前目录下
my/demo 构建之后镜像名称
5. 镜像构建成功之后,就可以运行容器了:
docker run -d --name demo -p 8080:80 my/demo
DockerFile
执行DockerFile
docker build -f /mydocker/Dockerfile2 -t mycentos:1.3 .
1.原镜像 scratch
FROM scratch
MAINTAINER 名字<邮箱>
ADD xxxx.tar.xz /
LABEL name="CentOS Base Image" \
vendor="CenOS" \
license="GPLv2" \
build-date="2016-06-02"
# Default command
CMD ["/bin/bash"]
2.环境变量 ENV
//MYPATH = /usr/local
ENV MYPATH /usr/local
3.落脚点 WORKDIR
WORKDIR $MYPATH
4.端口 EXPOSE
5.执行 RUN CMD
//可以写成CMD yum -y install vim 吗?
//我也不知道
RUN yum -y install vim
RUN yum -y install net-tools
CMD echo $MYPATH
CMD echo "success------ok"
CMD /bin/bash
一个例子
- 本地镜像到阿里云
阿里云-容器镜像服务
$ sudo docker login --username=136******** registry.cn-shenzhen.aliyuncs.com
$ sudo docker tag [ImageId] registry.cn-shenzhen.aliyuncs.com/yyong/mytest:[镜像版本号]
$ sudo docker push registry.cn-shenzhen.aliyuncs.com/yyong/mytest:[镜像版本号]
[root@VM_0_3_centos ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mydocker/door80 latest 5f3ed1aaf49f 13 days ago 695 MB
mydocker/door8080 latest 2a8f8a894625 13 days ago 695 MB
docker.io/mysql 5.7 cd3ed0dfff7e 2 months ago 437 MB
docker.io/rmohr/activemq latest 7c58d2d8d6af 15 months ago 569 MB
docker.io/java 8 d23bdf5b1b1b 2 years ago 643 MB
[root@VM_0_3_centos ~]# docker login --username=136******** registry.cn-shenzhen.aliyuncs.com
Password:
Login Succeeded
[root@VM_0_3_centos ~]# docker tag cd3ed0dfff7e registry.cn-shenzhen.aliyuncs.com/yyong/mytest:1.9.9
[root@VM_0_3_centos ~]# docker push registry.cn-shenzhen.aliyuncs.com/yyong/mytest:1.9.9
The push refers to a repository [registry.cn-shenzhen.aliyuncs.com/yyong/mytest]
ccbee7d06322: Pushed
392376ec36d5: Pushed
05ef222f4cd4: Pushed
7ec35a0f9fd8: Pushed
13272fe0aa5c: Pushed
ca3e8d7fe261: Pushed
452ea71a57ff: Pushed
d8cb0457f31e: Pushed
3c353031df8b: Pushed
096401f81d2c: Pushed
67ecfc9591c8: Pushed
1.9.9: digest: sha256:ba2eda1bf1249bd7e7160fa6c446d03b3261f75d3de91bc2125967d39db1525c size: 2622
[root@VM_0_3_centos ~]#
#. 简单防火墙操作
//linux系统
service firewalld status ;查看防火墙状态
service firewalld stop ;关闭防火墙
希望大家多多点赞