搜索镜像:
docker search openeuler
拉取镜像:
docker pull openeuler/openeuler
生成容器:
运行3ae785a295a7镜像生成名为neo4j_openeuler容器,-it
表示打开一个交互式终端,与/bin/bash
配合使用:
docker run -it --name=neo4j_openeuler 3ae785a295a7 /bin/bash
查看所有镜像:
docker image ls -a
查看当前正在运行的容器:
docker ps
查看所有容器:
docker ps -a
或
docker container ls -a
查看当前正在运行的容器的大小:
docker ps -s
查看所有容器的大小:
docker ps -a -s
windows中启动容器并执行交互式终端:需要先启动docker desktop
docker start neo4j_openeuler
docker exec -it neo4j_openeuler /bin/bash
ubuntu中启动docker服务并启动容器并执行交互式终端:注意必须在sudo模式下
sudo su
service docker start
docker start neo4j_openeuler
docker exec -it neo4j_openeuler /bin/bash
从Docker bash命令行中退回至终端:
exit
复制本地文件到docker容器内:
docker cp 本地文件路径 容器ID/容器NAME:容器内路径
举例:
docker cp /home/neo4j.tar.gz neo4j_openeuler:/home
Ubuntu中已创建容器添加或修改端口映射方法:
sudo su
docker inspect neo4j_openeuler | grep Id
Id后的数字为容器的 hash_of_the_container 数值,复制这串数字出来。
停止容器,停止docker服务。
docker stop neo4j_openeuler
systemctl stop docker
修改该容器的配置文件,一般在/var/lib/docker/containers/上面复制出来的那串数字/
下。
a. 修改hostconfig.json
:
"PortBindings":{}
改成 "PortBindings":{"容器内部端口1/tcp":[{"HostIp":"0.0.0.0","HostPort":"宿主机映射端口1"}],"容器内部端口2/tcp":[{"HostIp":"0.0.0.0","HostPort":"宿主机映射端口2"}]}
b. 修改config.v2.json
先搜索有无ExposedPorts
项,若没有则在"Tty": true
前添加"ExposedPorts":{"容器内部端口1/tcp":{},"容器内部端口2/tcp":{}}
至此已完成配置,启动服务启动容器即可。
systemctl start docker
docker start neo4j_openeuler
docker容器移植到其他机器:
参考:解决docker commit后镜像越来越大的问题 中的方法1,原理详见其中总结的图,清晰明了。
方法概述:使用docker export将container打包为tar文件,在另一台设备上使用docker import将tar加载为image,后面按常规步骤创建容器即可。
docker export -o /容器路径/container_XXX.tar 容器ID
docker import container_XXX.tar 镜像名称:镜像标签
docker run -p 宿主机端口:容器内部端口 -p 宿主机端口:容器内部端口 -it --name=容器名称 镜像ID /bin/bash
ps:export中的-o
是指定导出的 tar 文件应该存放的路径和文件名
ps:通过export import这种方式创建的镜像不包含网络配置,如需要端口映射,请在docker run
的时候加入端口映射指令,即在run后面添加一个或多个-p 宿主机端口:容器内部端口