推薦閱讀
Dockerfile
在容器內(nèi)的主進程啟動之前,先啟動另一個程序,根據(jù)鏡像中的文件和把鏡像啟動為容器時向容器傳遞的環(huán)境變量(有需要的話替換配置文件),由這個程序啟動主進程。(exec)
FROM
指令是最重要的一個且必須為Dockerfile文件開篇的第一個非注釋行,用于指定映像文件構(gòu)建過程指定基準鏡像,后續(xù)的指令運行于此基準鏡像所提供的運行環(huán)境,本機不存在此基準鏡像則從Registey拉取。MAINTANIER
制作者的詳細信息。已替換為LABLE
。COPY
用于從Docker主機復(fù)制文件至創(chuàng)建的新映像文件(build上下文中的路徑,不能是父目錄中的文件)。ADD
類似COPY,支持tar文件或者url路徑WORKDIR
指定工作目錄。VOLUME
創(chuàng)建掛載目錄。EXPOSE
用于為容器打開指定要監(jiān)聽的端口以實現(xiàn)與外部通信。ENV
用于為鏡像定義所需的環(huán)境變量,并可被文件中與其后的其它指令所調(diào)用。EVN key=value ${value}。 使用\
換行 。可被run -e命令替換。RUN
運行在build時,逐一運行,由于pid不為1,需注意命令格式。CMD
運行在run時,僅最后一個生效,會被run的參數(shù)覆蓋。ENTRYPOINT
類似CMD,不會被run命令覆蓋,僅最后一個生效。(相關(guān)鏈接:https://www.cnblogs.com/reachos/p/8609025.html)USER
指定用戶名或PID。HEALTHCHECK
健康監(jiān)測。ARG
指定build時的參數(shù)。
安裝
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum makecache fast
sudo yum -y install docker-ce
sudo systemctl start docker
systemctl start docker & systemctl enable docker
運行鏡像
docker pull registry.docker-cn.com/library/rabbitmq:3-mmanegement
docker images
docker run -d -p 5672:5672 -p 15672:15672 --name myrabbitmq image的id
docker ps
docker exec -it mysql5.7 /bash
退出:exit
容器鏡像刪除
1.停止所有的container,這樣才能夠刪除其中的images:
docker stop (docker ps -a -q)
2.查看當前有些什么images
docker images
3.刪除images,通過image的id來指定刪除誰
docker rmi <image id>
想要刪除untagged images,也就是那些id為<None>的image的話可以用
docker rmi 3}")
要刪除全部image的話
docker rmi $(docker images -q)
使用本地文件
docker run -d -p 3306:3306 --privileged=true -v /docker/mysql.conf.d/mysqld.cnf:/home/mysqld.cnf -v /docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql
替換配置文件
簡略步驟如下:
docker cp 3c8d188f7fb48:/etc/mysql/mysql.conf.d/mysqld.cnf /home/
docker cp /home/mysqld.cnf 3c8d188f7fb48:/etc/mysql/mysql.conf.d/mysqld.cnf
docker reload 3c8d188f7fb48
限制對內(nèi)存使用
docker run -e ES-JAVA-OPTS="-Xms 256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 image的id
發(fā)布jar包
#1、修改ip等環(huán)境配置后,導(dǎo)出jar包
mvn -DskipTests=true clean package
#2、新建Dockerfile文件,shop-manager-1.0-SNAPSHOT.jar為你自己項目的jar包名
FROM java:8
VOLUME /tmp
ADD shop-manager-1.0-SNAPSHOT.jar app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
#3、將Dockerfile與jar包上傳至服務(wù)器同一目錄下,運行docker build命令
docker build -t shop-manager .
#4、編譯成功后即可通過imange id運行
# 查看日志需增加文件路徑映射 –v {宿主機目錄}:{docker日志目錄}
docker run -d -p 8080:8080 shop-manager