docker学习日记

教程:
https://www.runoob.com/docker...
http://www.dockerinfo.net/doc...

1: 安装:
1.1:安装所需的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2

1.2:设置稳定的仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/doc...

1.3:安装最新版本
yum install docker-ce docker-ce-cli containerd.io
如果不安装社区版本,可以直接执行:yum install docker

1.4:安装特定版本
1.4.1:列出并排序您存储库中可用的版本
yum list docker-ce --showduplicates | sort -r

1.4.2:通过其完整的软件包名称安装特定版本。该软件包名称是软件包名称(docker-ce)加上版本字符串(第二列),从第一个冒号(:)一直到第一个连字符,并用连字符(-)分隔。例如:docker-ce-18.09.1
yum install docker-ce- docker-ce-cli- containerd.io

1.5:镜像仓库配置
在 /etc/docker/daemon.json中写入如下内容
{
"registry-mirrors": ["https://lfxql9az.mirror.aliyuncs.com"]
}

然后重新启动服务:

systemctl daemon-reload

systemctl restart docker

1.6:docker0端口修改默认IP:
docker服务启动后,会默认起用docker0这个IP,该IP的默认地址是172.17.0.1。修改默认IP的方法是在/etc/docker/daemon.json中写入如下内容
{"bip":"192.168.100.1/24"}

1.7:搜索镜像: docker search -f stars=10 java (搜索收藏数量大于10的java镜像)
镜像官网地址:https://hub.docker.com

1.8:运行镜像:
docker run -itd --name yourname -p 80:80 imagename:tag
其中:-d表示后台运行
--name 是给运行的容器命名
-p 表是进行端口映射,冒号前面的端口是宿主机端口,冒号后面的端口是容器端口

1.9:创建镜像
在Dockerfile 创建好之后,执行下面的命令可以创建镜像。
docker build -t imagename:tag .

Dockerfile例子:
FROM java
RUN mkdir -p /home/apps/run/ && mkdir -p /home/logs/run/
COPY ./src/xxx/target/xxx.jar /home/apps/run/
WORKDIR /home/apps/run/
CMD java -jar xxx.jar

1.10:在容器里执行命令,类似如下:
docker exec -it 9df70f9a0714 /bin/bash

FAQ:
1:遇到下面这个问题
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
原因是docker服务没有起用,需要执行命令:service docker start

2:创建镜像的时候,提示:docker 创建镜像时显示 Forbidden path outside the build context ../../xxxxx
原因是COPY命令不支持 ../ 这样的符号。
解决办法是:把Dockerfile文件上提,使之不使用 ../ 符号。

3:如果运行镜像提示:The container name "xxx" is already in use by container xxx...。
这时候需要移除镜像。具体操作是先执行 docker ps -a 列出所有容器。然后使用 docker rm 容器ID 来删除容器。

你可能感兴趣的:(docker)