CMD 容器启动命令

CMD指令用于为执行容器提供默认值。每个Dockerfile只有一个CMD命令,如果指定了多个CMD命令,那么只有最后一条会被执行,如果启动容器的时候指定了运行的命令,则会覆盖掉CMD指定的命令。

支持三种格式:

CMD ["executable","param1","param2"] (推荐使用)

CMD ["param1","param2"] (为ENTRYPOINT指令提供预设参数)

CMD command param1 param2 (在shell中执行)

ENTRYPOINT 入口点

ENTRYPOINT和CMD指令的目的一样,都是指定Docker容器启动时执行的命令,可多次设置,但只有最后一个有效。ENTRYPOINT不可被重写覆盖。

ENTRYPOINT、CMD区别:http://blog.csdn.net/newjueqi/article/details/51355510

https://segmentfault.com/q/1010000000417103

RUN是在Build时运行的,先于CMD和ENTRYPOINT。Build完成了,RUN也运行完成后,再运行CMD或者ENTRYPOINT。

ENTRYPOINT和CMD的不同点在于执行docker run时参数传递方式,CMD指定的命令可以被docker run传递的命令覆盖

ENTRYPOINT指定的参数比运行docker run时指定的参数更靠前

docker exec -it 容器id /bin/bash

java

#docker run
docker run java /bin/echo 'Hello World' # dockerfile # 基于哪个镜像
FROM java:8
# 将本地文件夹挂载到当前容器
VOLUME /tmp
# 拷贝文件到容器,也可以直接写成ADD xxxxx.jar /app.jar
ADD app.jar /app.jar
# 声明需要暴露的端口
EXPOSE 8761
# 配置容器启动后执行的命令
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] #以下在同一目录
#Dockerfile FROM java:8
VOLUME /tmp
ADD microservice-discovery-eureka-0.0.1-SNAPSHOT.jar app.jar
# RUN bash -c 'touch /app.jar'
EXPOSE 9000
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] # docker-compose.yml
version: '2' # 表示该docker-compose.yml文件使用的是Version 2 file format
services:
eureka: # 指定服务名称
build: ./ # 指定Dockerfile所在路径
ports:
- "8761:8761" # 指定端口映射,类似docker run的-p选项,注意使用字符串形式 # 执行运行
docker-compose up -d # --no-deps 标志可防止Compose重新创建任何web 依赖的服务
docker-compose up --no-deps -d web #docker-compose
version: '2'
services:
mysql:
image: mysql:5.7
expose:
- "3306"
environment:
- MYSQL_ROOT_PASSWORD=123456
wordpress:
image: wordpress
ports:
- "80:80"
environment:
- WORDPRESS_DB_HOST=mysql
- WORDPRESS_DB_USER=root
- WORDPRESS_DB_PASSWORD=123456

nginx

docker run -d -p 91:91 nginx

docker exec -it nginx容器ID /bin/bash   # 进入容器

#Nginx默认首页目录在:/usr/share/nginx/html/index.html
tee /usr/share/nginx/html/index.html <<-'EOF'
Welcome to docker
EOF FROM nginx
RUN echo '<h1>Spring Cloud与Docker微服务实战</h1>' > /usr/share/nginx/html/index.html FROM centos:7
RUN rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
RUN yum -y install nginx
RUN sed -i '1i\daemon off;' /etc/nginx/nginx.conf
ENTRYPOINT nginx

tomcat

https://my.oschina.net/u/3489495/blog/1825335

docker run --name tomcat8080 -d -p 8080:8080 tomcat
docker inspect -f '{{.Id}}' tomcat8080
docker exec -it a3d4f36dca98 /bin/bash

mysql

docker run -p 3309:3306 --name mysql3309 -e MYSQL_ROOT_PASSWORD=root -d mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --default-authentication-plugin=mysql_native_password

#Docker-mysql8.0客户端无法连接

进入容器bash并进入mysql命令行
docker exec -it mysql3306 bash
root@eb3dbfb0958f:/# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.

mysql>
//使用mysql数据库
mysql>use mysql -- update user set authentication_string = password('root') where user = 'root';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'pass'; #更新一下用户的密码 root用户密码为newpassword GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
flush privileges; CREATE USER 'liaozesong'@'%' IDENTIFIED WITH mysql_native_password BY 'Lzslov123!';
GRANT ALL PRIVILEGES ON *.* TO 'liaozesong'@'%'; //修改数据库
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root'; //刷新数据库
mysql> flush privileges; dockerfile FROM nginx_dockerfile:centos
RUN yum -y install gcc gcc-c++ make automake cmake
RUN groupadd mysql; useradd -r -M -u 39 -s /sbin/nologin -g mysql mysql
RUN mkdir /usr/local/mysql; mkdir /data/mysql/db -p
RUN yum install gcc gcc-c++ ncurses-devel bison bison-devel -y
RUN wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.29.tar.gz
RUN tar zxf mysql-5.6.29.tar.gz -C /usr/src/
WORKDIR /usr/src/mysql-5.6.29
RUN cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql/db -DSYSCONFDIR=/etc -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DEXTRA_CHARSETS=all -DDEFAULT_COLLATION=utf8_general_ci -DWITH-MYSQLD-LDFLAGS=-all-static -DWITH-CLIENT-LD-FLAGS=-all-static -DWITH_DEBUG=0 && gmake && gmake install
RUN chown -R root:mysql /usr/local/mysql/ && chown -R mysql:mysql /data/mysql/db/
RUN chmod 775 /usr/src/mysql-5.6.29/scripts/mysql_install_db.sh
RUN /usr/src/mysql-5.6.29/scripts/mysql_install_db.sh --basedir=/usr/local/mysql --datadir=/data/mysql/db --no-defaults --user=mysql
RUN cp /usr/src/mysql-5.6.29/support-files/my-default.cnf /etc/my.cnf
RUN cp /usr/src/mysql-5.6.29/support-files/mysql.server /etc/init.d/mysqld
RUN chmod -R 775 /etc/init.d/mysqld && /etc/init.d/mysqld start
RUN echo -e '#!/bin/bash\nexport PATH=$PATH:/usr/local/mysql/bin' >/etc/profile.d/mysql.sh
RUN source /etc/profile docker build -t mysql_dockerfile:nginx_dockerfile . https://www.cnblogs.com/ivictor/p/4832832.html
https://github.com/mysql/mysql-docker/blob/mysql-server/5.7/Dockerfile FROM mysql:5.6.34 MAINTAINER fengzp <fengzp@gzyitop.com>
RUN apt-get update
RUN apt-get -y install vim
RUN usermod -u 1000 mysql
RUN mkdir -p /var/run/mysqld
RUN chmod -R 777 /var/run/mysqld VOLUME /etc/mysql
VOLUME /script https://www.cnblogs.com/andyfengzp/p/6424150.html

docker安装镜像的更多相关文章

  1. k8s集群之Docker安装镜像加速器配置与k8s容器网络

    安装Docker 参考:https://www.cnblogs.com/rdchenxi/p/10381631.html 加速器配置 参考:https://www.cnblogs.com/rdchen ...

  2. 使用docker安装centos6.10镜像并安装新版gcc

    使用docker安装centos6.10镜像并安装新版gcc 环境:Linux Ubuntu 16.04.7 LTS 目录 使用docker安装centos6.10镜像并安装新版gcc 使用docke ...

  3. Docker安装入门 -- 应用镜像

    Docker安装入门 -- 应用镜像 WordPress  1.docker build -t csphere/wordpress:4.2 .  2.docker run -d -p 80:80 -- ...

  4. Docker安装入门 -- 中间件镜像

    Docker安装入门 -- 中间件镜像 php-fpm 1.docker build -t csphere/php-fpm:5.4 .   //在当前目录下创建镜像 2.docker run -d - ...

  5. Docker 安装入门 --基础镜像

    安装Docker1.Docker命令安装 yum install docker //安装docker包 service docker start //设置服务启动  chkconfig docker ...

  6. Windows10下的docker安装与入门 (二)使用docker引擎在容器中运行镜像

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何 ...

  7. Docker笔记——Docker安装及制作镜像

    1 Docker安装本文中Docker运行环境为Ubuntu 14.04.1 LTS 3.13.0-32-generic x64参考:https://docs.docker.com/v1.11/eng ...

  8. Docker构建YApi镜像, Docker安装YApi, Docker部署YApi

    概述 YApi 是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测试人员提供更优雅的接口管理服务.可以帮助开发者轻松创建.发布.维护 API,YApi 还为用户提供了优秀的交互体验,开发 ...

  9. win10下docker安装和配置镜像仓库

    初学docker记录一下流程 1.首先安装直接官网下载 DockerToolbox 即可,安装过程傻瓜式下一步即可.(这个集成了虚拟机,果然安装过的可以去掉) 2.安装好后双击Docker Quick ...

随机推荐

  1. wordpress 解决文章内http链接问题

    1. 登录Wordpress后台, 常规设置  > 里面把站点URL 修改成 https开头 2. 登录phpmyadmin , 执行替换链接的SQL 替换wordpress配置的链接地址 (可 ...

  2. 搭建基于MySQL的读写分离工具Amoeba

    搭建基于MySQL的读写分离工具Amoeba: Amoeba工具是实现MySQL数据库读写分离的一个工具,前提是基于MySQL主从复制来实现的: 实验环境(虚拟机): 主机 角色 10.10.10.2 ...

  3. leetcode每日刷题计划-简单篇day2

    今天数模比赛爆肝&操作系统大作业 脖子疼orz先把题过了保证flag不倒..个别细节回头看吧 Num 13 罗马数字转整数 Roman to Integer 一遍提交过,开始编译出了点问题 具 ...

  4. centos rz sz安装

    1.命令: yum install lrzsz 2.

  5. vue 时间过滤

    1.过滤13位时间戳(以评论时间为例) filters : { formattime2: function (value) { //value为13位的时间戳 var timestamp = Date ...

  6. nmap的使用

    安装完nmap后,看网上都是直接cmd后nmap的方式来查看是否安装成功,但实际我总是不对,然后自己想着进入安装包执行命令,果然成功.

  7. hikari链接池

    # 链接池 hikari: # 等待连接池分配连接的最大时长(毫秒),超过这个时长还没可用的连接则发生SQLException, 缺省:30秒 connection-timeout: 60000 # ...

  8. Lock关键字

    public abstract class CountBase { public abstract void Increment(); public abstract void Decreament( ...

  9. java学习笔记(九):Java 流(Stream)、文件(File)和IO

    Java 的控制台输入由 System.in 完成. 为了获得一个绑定到控制台的字符流,你可以把 System.in 包装在一个 BufferedReader 对象中来创建一个字符流.需要import ...

  10. 《CSAPP》地址翻译

    本节所使用的符号: 地址翻译 地址翻译是一个N元素的虚拟地址空间(VAS)中的元素和一个M元素的物理地址空间(PAS)中元素之间的映射. 映射实现: MMU利用页表来实现这种映射.CPU中的一个控制寄 ...