Uninote
Uninote
用户根目录
工作日志

Docker

1,Docker安装

下面的任意一个都行,如果不行可以使用yum list installed |grep docker查看已经安装的dockeryum -y remove name删除已经安装的docker

yum install -y docker yum install -y docker-io yum install https://get.docker.com/rpm/1.7.1/centos-6/RPMS/x86_64/docker-engine-1.7.1-1.el6.x86_64.rpm

2,启动docker

centos7: systemctl start docker centos6: service docker start

3,docker安装mysql

  • 1,先搜索mysql镜像

[root@VM_0_9_centos conf]# docker search mysql INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED docker.io docker.io/mysql MySQL is a widely used, open-source relati... 8985 [OK]
docker.io docker.io/mariadb MariaDB is a community-developed fork of M... 3170 [OK]
docker.io docker.io/mysql/mysql-server Optimized MySQL Server Docker images. Crea... 668 [OK] docker.io docker.io/centos/mysql-57-centos7 MySQL 5.7 SQL database server 66
docker.io docker.io/centurylink/mysql Image containing mysql. Optimized to be li... 61 [OK] docker.io docker.io/mysql/mysql-cluster Experimental MySQL Cluster Docker images. ... 59
docker.io docker.io/deitch/mysql-backup REPLACED! Please use http://hub.docker.com... 41 [OK] docker.io docker.io/bitnami/mysql Bitnami MySQL Docker Image 35 [OK] docker.io docker.io/tutum/mysql Base docker image to run a MySQL database ... 34
docker.io docker.io/schickling/mysql-backup-s3 Backup MySQL to S3 (supports periodic back... 28 [OK] docker.io docker.io/linuxserver/mysql A Mysql container, brought to you by Linux... 24
docker.io docker.io/prom/mysqld-exporter 24 [OK] docker.io docker.io/centos/mysql-56-centos7 MySQL 5.6 SQL database server 17
docker.io docker.io/circleci/mysql MySQL is a widely used, open-source relati... 16
docker.io docker.io/mysql/mysql-router MySQL Router provides transparent routing ... 14
docker.io docker.io/arey/mysql-client Run a MySQL client from a docker container 13 [OK] docker.io docker.io/openshift/mysql-55-centos7 DEPRECATED: A Centos7 based MySQL v5.5 ima... 6
docker.io docker.io/yloeffler/mysql-backup This image runs mysqldump to backup data u... 6 [OK] docker.io docker.io/fradelg/mysql-cron-backup MySQL/MariaDB database backup using cron t... 4 [OK] docker.io docker.io/genschsa/mysql-employees MySQL Employee Sample Database 4 [OK] docker.io docker.io/ansibleplaybookbundle/mysql-apb An APB which deploys RHSCL MySQL 2 [OK] docker.io docker.io/devilbox/mysql Retagged MySQL, MariaDB and PerconaDB offi... 2
docker.io docker.io/jelastic/mysql An image of the MySQL database server main... 1
docker.io docker.io/monasca/mysql-init A minimal decoupled init container for mysql 0
docker.io docker.io/widdpim/mysql-client Dockerized MySQL Client (5.7) including Cu... 0 [OK]

  • 2,选择一个安装

docker pull docker.io/mysql

  • 3,创建一些容器和宿主机的依赖信息

mkdir -p /root/mysql/data /root/mysql/logs /root/mysql/conf cd /root/mysql/conf touch my.cnf

  • 4,启动docker容器

docker run -p 3307:3306 --name mysql -v /root/mysql/conf:/etc/mysql/conf.d -v /root/mysql/logs:/logs -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d docker.io/mysql

4,docker使用

  • 1,镜像相关

docker search java:在Docker Hub(或阿里镜像)仓库中搜索关键字(如java)的镜像 docker pull java:8:从仓库中下载镜像,若要指定版本,则要在冒号后指定 docker images:列出已经下载的镜像 docker rmi java:删除本地镜像 docker build:构建镜像 docker inspect:查看镜像详细信息,包括制作者、适应架构、各层的数字摘要等。 docker cp 文件名 容器id:容器目录:docker从主机复制文件到容器 docker cp 96f7f14e99ab:/www /tmp/:docker从容器内部复制文件到主机 docker container cp 文件名 容器id:容器目录:docker复制文件到运行中的容器中 docker history 镜像id:查看镜像构建历史

  • 2,容器相关

docker run -d -p 91:80 nginx :在后台运行nginx,若没有镜像则先下载,并将容器的80端口映射为宿主机的91端口。 -d:后台运行 -P:随机端口映射 -p:指定端口映射 -v:指定数据卷,就是将宿主机的某个文件夹和容器内的某个文件夹进行数据互通 -net:网络模式 docker ps:列出运行中的容器 docker ps -a :列出所有的容器 docker stop 容器id:停止容器 docker kill 容器id:强制停止容器 docker start 容器id:启动已停止的容器 docker inspect 容器id:查看容器的所有信息 docker container logs 容器id:查看容器日志 docker top 容器id:查看容器里的进程 docker exec -it 容器id /bin/bash:进入容器 exit:退出容器 docker rm 容器id:删除已停止的容器 docker rm -f 容器id:删除正在运行的容器 docker container port 容器id:查看容器的映射端口 docker --volumes-from 容器名:继承指定的容器的数据卷 docker attach 容器id:进入容器

5,docker镜像提交到云端

docker镜像commit就是将一个你已经部署好了的镜像放到docker hub上面,下次如果想用相同环境,可以直接下载下来就能使用了

docker commit -a="作者" -m="镜像的描述信息" 容器id 镜像名字 例:docker commit -a="Abner" -m"tomcat" 7cf735e4868c abner/springcloudtomcat:1.0

第一步:docker login --username= registry.cn-hangzhou.aliyuncs.com 第二 步:docker tag [imageid] registry.cn-hangzhou.aliyuncs.com/zzyybuy/mycentos:[镜像版本号] 第三步:docker push registry.cn-hangzhou.aliyuncs.com/zzyybuy/mycentos:[镜像版本号] docker tag local-image:tagname new-repo:tagname docker push new-repo:tagname

6,Dockerfile

  • FROM:基础镜像,当前镜像是基于哪个镜像的
  • MAINTAINER:镜像维护者的姓名和邮箱地址
  • RUN:容器构建时需要运行的命令
  • EXPOSE:当前容器对外暴露的端口
  • WORKDIR:指定容器创建后,终端默认登陆进来的工作目录,一个落脚点
  • ENV:用来构建镜像过程中设置环境变量
  • ADD:将宿主机目录下的文件拷贝到容器的某个目录下,并且copy过程中会解压
  • COPY:将宿主机目录下的文件拷贝到容器的某个目录下,但是不会解压
  • VOLUME:容器数据卷,用于数据保存和持久化工作
  • CMD:指定一个容器启动时要运行的命令,Dokerfile中可以有多个CMD命令,但是只有最后一个生效,CMD会被RUN之后的参数替换掉
  • ENTRYPOINT:指定一个容器启东市要运行的命令,ENTRYPOINT的目的和CMD一样,都是指定容器启动程序及参数,但是RUN之后的参数是会追加到后面
  • ONBUILD:当构建一个被继承的Dockerfile时运行的命令,父镜像被子镜像继承时触发

Docker扫盲之容器与镜像的基本使用

docker容器间的通信

点赞(0) 阅读(13) 举报
目录
标题