如何创建docker镜像(学习与使用docker)

  1. 首先在docker官网进行安装本地可执行文件docker客户端
    看到如下的绿色标志即是docker在正常运行:
  2. 其次假设你已经有一个git本地的仓库了
    那么如何构建build docker文件呢?
    采用如下命令:
docker build -t myapp .

注意这个命令是需要本地安装的docker启动起来之后再执行,否则会出现无法找到文件的错误

  1. 其次build完成之后,可以在本地的docker客户端看到自己刚才build的景象的内容:
    比如刚才构建的镜像名称叫做: myapp
    可以看到现在出现了:
  2. run你刚才build好的镜像文件:
docker run myapp

这里是刚才在dockerfile文件内写的 输出语句,当执行的时候,应该会输出指定内容:

CMD ["Hello daniel"]

这时候就会出现

docker 创建helloword 镜像 docker创建一个镜像_git


Notice that the CMD can be overridden when running the image.

  1. 即使在dockerfile中指定的输出语句是:
    cmd [“hello daniel”]
    但是 当你在执行dokcerfile的时候,是可以修改输出内容的:
    比如:
docker run myapp joe

那么输出将会变成:

docker 创建helloword 镜像 docker创建一个镜像_git_02


This is how you can change the input to your program once it has been “dockerized” to run as an image inside a container

当你在feature分支的内容commit之后,check out到master 分支,当你进行merge合并到时候:
(假设你当前在master分支,且feature分支的代码已经commit了):

git merge dockerfix

这个时候,应该就可以把feature分支的代码merge到master分支
(通常如果会有conflict,也会在这一步进行报错)
如果报错了git conflict,那么记得第一步是要git status查看哪些代码文件是存在修改但是没有被保存或者commit的

1. docker如何用命令查看镜像的container列表以及状态:
docker ps -a 
2. 根据所列出来的list查看某一个object的具体信息:
docker top <container_id>
3. 获取host主机的ip地址:
docker inspect [your_container_name] | grep IP
4.指定端口号启动docker
docker run -v  xxx --name xxx -p 16022:22 -it xxx
eg:docker run -v  D:\datasets\uniform\data:/usr/src/app/uniform/data --name yolov5-lbh -p 16022:22 -it ultralytics/yolov5:latest
5.如果不成功,可以先尝试ssh链接是否能够直接成功,如果这个不可以,那么pycharm一定无法成功链接:
ssh root@127.0.0.1 -p 16022
4. 如果报错:检查以下内容:
Put the content of $HOME/.ssh/id_rsa.pub in $HOME/.ssh/authorized_keys
5. nano 退出方式
	Ctrl+X
首先在pycharm底部services里面找到之前启动过的docker文件,在启动start了docker的指定镜像后,如果发现右边的romote链接失败:
解决办法:
1. 进入docker的命令行
2. apt-get update (第一次需要)
   apt-get install sudo (第一次需要)
3. #安装SSH服务
	sudo apt-get install openssh-server
	#启动SSH服务
	sudo /etc/init.d/ssh start
	#查看SSH服务状态
	sudo service ssh status
4.  passwd root #建议设置成很简单的root就可以
5. 	nano /etc/ssh/sshd_config #用nano查看并且配置下面的信息
    #启用 RSA 认证
	RSAAuthentication yes 
	#启用公钥私钥配对认证方式
	PubkeyAuthentication yes 
	#公钥文件路径(和上面生成的文件同)
	AuthorizedKeysFile .ssh/authorized_keys 
	#root能使用ssh登录
	PermitRootLogin yes 
6. 	service ssh restart # 重启一下service(大多数情况下可以首先使用过这个command)
7. 冲新尝试连接,大多数情况下应该可解决问题

这样就可以算是链接成功了镜像内部的文件配置的python解释器

docker 创建helloword 镜像 docker创建一个镜像_客户端_03


reference

第二次任务记录:

记录:
mac上的localhost的默认端口是80,即当你在浏览器访问localhost的时候就等于:

localhost:80

git add . 全部添加之后,需要撤回到添加之前的上一步:

git reset HEAD

指定添加某一个文件,然后给这个文件单独commit并且添加commit的信息message内容

git add src/index.html && git commit -m "added new title"

docker 创建helloword 镜像 docker创建一个镜像_学习_04

在本地进行操作的时候,一般不要动master分支,都是需要在需要修改的时候创建一个新的feature分支,然后在新的分支上更改,然后commit 并且 push到git,然后由管理员来决定merge和pull request的分支合并处理

docker 创建helloword 镜像 docker创建一个镜像_docker_05


可以看到,这里的push都不是向master的

基本上工作流程是:

  1. 有一个master branch
  2. 你有一个新的需求,git check out -b feature1
  3. 现在你在 feature1 branch上,然后你进行更改(这时候尽量在updated的master基础上修改)
  4. 修改好之后你的feature完工了, git push (–set-upstream -f) origin feature1
  5. 此时如果成功了,本地的修改就已经到了远程的feature1分支
  6. 然后你就可以去你的github主页,可以看到一个新的push,然后决定提交merge request给管理员
  7. 这个时候管理员他的终端就可以看到,然后决定进行代码审查,并且回复消息或者决定接受新的更改到master
  8. 然后管理员如果更新的master的分支代码,你在本地需要重新 git pull origin master (对origin的执行pull master的操作,即为用master的代码更新本地的代码)
  9. 这个时候确保你本地的master已经是最新的了,就可以删掉feature1的分支修改代码,保存master的
  10. 如果有新的需求,就可以重新开启一个feature2然后重复执行step 2往后的步骤!

respect!!!