安装
yum install docker
安装完成后,使用下面的命令来启动 docker 服务,并将其设置为开机启动:
service docker start
chkconfig docker on
#LCTT 译注:此处采用了旧式的 sysv 语法,如采用CentOS 7中支持的新式 systemd 语法,如下:
systemctl start docker.service
systemctl enable docker.service
使用Docker 中国加速器
vi /etc/docker/daemon.json
#添加后:
{
"registry-mirrors": ["https://registry.docker-cn.com"],
"live-restore": true
}
重新启动docker
systemctl restart docker
输入docker version 返回版本信息则安装正常。
切换到容器shell中
docker exec -it some-mysql bash
退出输入:
exit
查看日志
docker logs some-mysql
详细信息
docker inspect
制作镜像
DockerFile
FROM java:8
COPY hlkjOnlineOffice.jar hlkjOnlineOffice.jar ##ADD也可以,若是压缩包,在copy的基础上解压
RUN bash -c 'touch /hlkjOnlineOffice.jar'
EXPOSE 8115
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","-Ddocker.name=${DOCKER_NAME}","-Ddocker.onlineViewPath=${ONLINE_VIEW_PATH}","/hlkjOnlineOffice.jar"]
#ENTRYPOINT也可不用设置"-Ddocker.name=${DOCKER_NAME}",在yml中 docker.name:${DOCKER_NAME:默认值}"即可
打包成镜像docker build -t hlkj-online-office:latest .
启动docker-compose up -d,会自动读取docker-compose.yml
DockerFile指令
制作docker centos镜像
平时使用
cd /root/images/
找到最新的镜像
ls |grep city-data-tx-platform-service:yyl-dev-1.0-6e6f3ddb
docker save bg3:8000/bdk/city-data-tx-platform-service:yyl-dev-1.0-6e6f3ddb > city-data-tx-platform-service:yyl-dev-1.0-6e6f3ddb.tar
传到测试服务器
scp ./city-data-tx-platform-service\:yyl-dev-1.0-6e6f3ddb.tar 47.98.38.116:/root/images/
登录测试服务器
cd /root/images
docker load -i city-data-tx-platform-service:yyl-dev-1.0-6e6f3ddb.tar
停止原来的镜像
docker ps |grep custom-yunyinglian
docker ps | grep city-data-tx-platform-service
docker rm -f [containerId]
修改容器内容
docker create --name platform_tmp bg3:8000/bdk/city-data-tx-platform-service:yyl-dev-1.0-a5f8a9a4
docker cp application-yyl-test.properties platform_tmp:/home/city-data-tx-platform
docker commit platform_tmp bg3:8000/bdk/city-data-tx-platform-service:yyl-dev-1.0-a5f8a9a4
docker rm -f platform_tmp
启动
docker run \
-e "ENV_XMS=1024m" -e "ENV_XMX=3072m" \
-e "SPRING_PROFILES_ACTIVE=yyl-test" \
-p 8010:8008 \
--privileged=true \
--name city-data-tx-platform-yyl-dev-1.0 \
-v /bdk/city-data-tx-platform-yyl-dev-1.0/logs:/home/city-data-tx-platform/logs \
-d bg3:8000/bdk/city-data-tx-platform-service:yyl-dev-1.0-6e6f3ddb
隔离
容器是一种比虚拟机更加轻量级的隔离方式,封闭的环境主要使用了两种技术, 一种是看起来是隔离的技术,称为namespace,也即每个namespace 中的应用看到的是不同的 IP 地址、用户空间、程号等。 另一种是用起来是隔离的技术,称为cgroup,也即明明整台机器有很多的 CPU、内存,而一个应用只能用其中的一部分。